[#6706] Added config to hide importers from table without disabling them

Signed-off-by: Cory Johns <cjohns@slashdotmedia.com>
diff --git a/ForgeImporters/forgeimporters/base.py b/ForgeImporters/forgeimporters/base.py
index ea01968..a556ec2 100644
--- a/ForgeImporters/forgeimporters/base.py
+++ b/ForgeImporters/forgeimporters/base.py
@@ -441,7 +441,9 @@
     def index(self, *a, **kw):
         importer_matrix = defaultdict(dict)
         tools_with_importers = set()
-        for ep in h.iter_entry_points('allura.importers'):
+        hidden = set(aslist(config.get('hidden_importers'), sep=','))
+        visible = lambda ep: ep.name not in hidden
+        for ep in filter(visible, h.iter_entry_points('allura.importers')):
             importer = ep.load()
             for tool in aslist(importer.target_app):
                 tools_with_importers.add(tool.tool_label)
diff --git a/ForgeImporters/forgeimporters/tests/test_base.py b/ForgeImporters/forgeimporters/tests/test_base.py
index f9a373b..b38548d 100644
--- a/ForgeImporters/forgeimporters/tests/test_base.py
+++ b/ForgeImporters/forgeimporters/tests/test_base.py
@@ -21,7 +21,7 @@
 from formencode import Invalid
 import mock
 from tg import expose, config
-from nose.tools import assert_equal, assert_raises
+from nose.tools import assert_equal, assert_raises, assert_in, assert_not_in
 from webob.exc import HTTPUnauthorized
 
 from alluratest.controller import TestController
@@ -283,6 +283,20 @@
         assert url.endswith('/admin/ext/import/importer1'), url
         assert_equal(import1_page.body, 'test importer 1 controller webpage')
 
+    @mock.patch.object(base.h, 'iter_entry_points')
+    def test_hidden(self, iep):
+        iep.return_value = [
+            ep('importer1', importer=TI1),
+            ep('importer2', importer=TI2),
+        ]
+        admin_page = self.app.get('/admin/')
+        with h.push_config(config, hidden_importers='importer1'):
+            import_main_page = admin_page.click('Import')
+        url = import_main_page.environ['PATH_INFO']
+        assert url.endswith('/admin/ext/import/'), url
+        assert not import_main_page.html.find('a', href='importer1')
+        assert import_main_page.html.find('a', href='importer2')
+
 
 def test_get_importer_upload_path():
     project = mock.Mock(