You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by tv...@apache.org on 2013/08/28 21:30:50 UTC
[06/13] git commit: [#6482] add a test for the importer admin page
[#6482] add a test for the importer admin page
Project: http://git-wip-us.apache.org/repos/asf/incubator-allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-allura/commit/7f179dca
Tree: http://git-wip-us.apache.org/repos/asf/incubator-allura/tree/7f179dca
Diff: http://git-wip-us.apache.org/repos/asf/incubator-allura/diff/7f179dca
Branch: refs/heads/master
Commit: 7f179dca16b4a37936a1d3427aa18db130a3292a
Parents: b7fb5f2
Author: Dave Brondsema <db...@slashdotmedia.com>
Authored: Tue Aug 13 20:38:30 2013 +0000
Committer: Tim Van Steenburgh <tv...@gmail.com>
Committed: Tue Aug 27 17:24:58 2013 +0000
----------------------------------------------------------------------
ForgeImporters/forgeimporters/base.py | 4 +-
.../forgeimporters/tests/test_base.py | 74 ++++++++++++++------
2 files changed, 56 insertions(+), 22 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/7f179dca/ForgeImporters/forgeimporters/base.py
----------------------------------------------------------------------
diff --git a/ForgeImporters/forgeimporters/base.py b/ForgeImporters/forgeimporters/base.py
index c6cdf4a..e957b1a 100644
--- a/ForgeImporters/forgeimporters/base.py
+++ b/ForgeImporters/forgeimporters/base.py
@@ -404,5 +404,5 @@ class ImportAdminExtension(AdminExtension):
def update_project_sidebar_menu(self, sidebar_links):
base_url = c.project.url() + 'admin/ext/'
- link = SitemapEntry('Import', base_url+'import')
- sidebar_links.append(link)
+ link = SitemapEntry('Import', base_url+'import/')
+ sidebar_links.append(link)
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/7f179dca/ForgeImporters/forgeimporters/tests/test_base.py
----------------------------------------------------------------------
diff --git a/ForgeImporters/forgeimporters/tests/test_base.py b/ForgeImporters/forgeimporters/tests/test_base.py
index 57ed227..f1c93ad 100644
--- a/ForgeImporters/forgeimporters/tests/test_base.py
+++ b/ForgeImporters/forgeimporters/tests/test_base.py
@@ -19,6 +19,10 @@ from unittest import TestCase
from formencode import Invalid
import mock
+from tg import expose
+from nose.tools import assert_equal
+
+from alluratest.controller import TestController
from .. import base
@@ -76,17 +80,25 @@ TA1 = mock.Mock(tool_label='foo', tool_description='foo_desc')
TA2 = mock.Mock(tool_label='qux', tool_description='qux_desc')
TA3 = mock.Mock(tool_label='baz', tool_description='baz_desc')
-class TestToolImporter(TestCase):
- class TI1(base.ToolImporter):
- target_app = TA1
+class TI1Controller(object):
+ @expose()
+ def index(self, *a, **kw):
+ return 'test importer 1 controller webpage'
+
+class TI1(base.ToolImporter):
+ target_app = TA1
+ controller = TI1Controller
+
+class TI2(base.ToolImporter):
+ target_app = TA2
+ tool_label = 'bar'
+ tool_description = 'bar_desc'
+
+class TI3(base.ToolImporter):
+ target_app = [TA2, TA2]
- class TI2(base.ToolImporter):
- target_app = TA2
- tool_label = 'bar'
- tool_description = 'bar_desc'
+class TestToolImporter(TestCase):
- class TI3(base.ToolImporter):
- target_app = [TA2, TA2]
@mock.patch.object(base, 'iter_entry_points')
def test_by_name(self, iep):
@@ -104,27 +116,27 @@ class TestToolImporter(TestCase):
@mock.patch.object(base, 'iter_entry_points')
def test_by_app(self, iep):
eps = iep.return_value = [
- ep('importer1', importer=self.TI1),
- ep('importer2', importer=self.TI2),
- ep('importer3', importer=self.TI3),
+ ep('importer1', importer=TI1),
+ ep('importer2', importer=TI2),
+ ep('importer3', importer=TI3),
]
importers = base.ToolImporter.by_app(TA2)
self.assertEqual(set(importers.keys()), set([
'importer2',
'importer3',
]))
- self.assertIsInstance(importers['importer2'], self.TI2)
- self.assertIsInstance(importers['importer3'], self.TI3)
+ self.assertIsInstance(importers['importer2'], TI2)
+ self.assertIsInstance(importers['importer3'], TI3)
def test_tool_label(self):
- self.assertEqual(self.TI1().tool_label, 'foo')
- self.assertEqual(self.TI2().tool_label, 'bar')
- self.assertEqual(self.TI3().tool_label, 'qux')
+ self.assertEqual(TI1().tool_label, 'foo')
+ self.assertEqual(TI2().tool_label, 'bar')
+ self.assertEqual(TI3().tool_label, 'qux')
def test_tool_description(self):
- self.assertEqual(self.TI1().tool_description, 'foo_desc')
- self.assertEqual(self.TI2().tool_description, 'bar_desc')
- self.assertEqual(self.TI3().tool_description, 'qux_desc')
+ self.assertEqual(TI1().tool_description, 'foo_desc')
+ self.assertEqual(TI2().tool_description, 'bar_desc')
+ self.assertEqual(TI3().tool_description, 'qux_desc')
class TestToolsValidator(TestCase):
@@ -172,3 +184,25 @@ class TestToolsValidator(TestCase):
mock.call('value1'),
mock.call('value2'),
])
+
+
+class TestProjectToolsImportController(TestController):
+
+ def test_pages(self):
+ admin_page = self.app.get('/admin/')
+ with mock.patch.object(base, 'iter_entry_points') as iep:
+ iep.return_value = [
+ ep('importer1', importer=TI1),
+ ep('importer2', importer=TI2),
+ ep('importer3', importer=TI3),
+ ]
+ import_main_page = admin_page.click('Import')
+ url = import_main_page.environ['PATH_INFO']
+ assert url.endswith('/admin/ext/import/'), url
+
+ with mock.patch.object(base.ToolImporter, 'by_name') as by_name:
+ by_name.return_value = TI1
+ import1_page = import_main_page.click('Import', href=r'importer1$')
+ url = import1_page.environ['PATH_INFO']
+ assert url.endswith('/admin/ext/import/importer1'), url
+ assert_equal(import1_page.body, 'test importer 1 controller webpage')