This commit is contained in:
@@ -23,6 +23,7 @@ class ModuleMetaTestCase(SimpleTestCase):
|
||||
self.assertEqual(mm.additional_apps, [])
|
||||
self.assertEqual(mm.url_prefix, 'test')
|
||||
self.assertEqual(mm.url_namespace, 'dav_base_tests_fake_app1')
|
||||
self.assertEqual(mm.root_url_name, 'dav_base_tests_fake_app1:root')
|
||||
pattern = mm.url_conf_pattern
|
||||
self.assertIsInstance(pattern, URLResolver)
|
||||
self.assertEqual('^test/', str(pattern.pattern))
|
||||
@@ -33,10 +34,13 @@ class ModuleMetaTestCase(SimpleTestCase):
|
||||
|
||||
def test_init_without_load(self):
|
||||
app_name = 'dav_base.tests.non_existent_app'
|
||||
app_namespace = app_name.replace('.', '_')
|
||||
mm = ModuleMeta(app_name, load=False)
|
||||
self.assertEqual(mm.package, app_name)
|
||||
self.assertEqual(mm.app, app_name)
|
||||
self.assertEqual(mm.url_prefix, app_name)
|
||||
self.assertEqual(mm.url_namespace, app_namespace)
|
||||
self.assertEqual(mm.root_url_name, app_namespace + ':root')
|
||||
|
||||
def test_url_config_not_exists(self):
|
||||
mm = ModuleMeta('dav_base.tests.fake_app1')
|
||||
@@ -57,19 +61,24 @@ class ModuleMetaTestCase(SimpleTestCase):
|
||||
'additional_apps': ['test1', 'test2.subtest'],
|
||||
'url_prefix': 'test_url_prefix',
|
||||
}
|
||||
expected_namespace = dd['package'].replace('.', '_')
|
||||
mm.load_from_dict(dd)
|
||||
self.assertEqual(mm.package, dd['package'])
|
||||
self.assertEqual(mm.app, dd['app_config'])
|
||||
self.assertEqual(mm.additional_apps, dd['additional_apps'])
|
||||
self.assertEqual(mm.url_prefix, dd['url_prefix'])
|
||||
self.assertEqual(mm.url_namespace, dd['package'].replace('.', '_'))
|
||||
self.assertEqual(mm.url_namespace, expected_namespace)
|
||||
self.assertEqual(mm.root_url_name, expected_namespace + ':root')
|
||||
|
||||
dd = {'package': 'dav_base2.bar'}
|
||||
expected_namespace = dd['package'].replace('.', '_')
|
||||
mm.load_from_dict(dd)
|
||||
self.assertEqual(mm.url_prefix, dd['package'])
|
||||
self.assertEqual(mm.app, dd['package'])
|
||||
self.assertEqual(mm.additional_apps, [])
|
||||
self.assertEqual(mm.url_prefix, dd['package'])
|
||||
self.assertEqual(mm.url_namespace, expected_namespace)
|
||||
self.assertEqual(mm.root_url_name, expected_namespace + ':root')
|
||||
|
||||
def test_dump_as_dict(self):
|
||||
mm = ModuleMeta('dav_base.tests.fake_app1')
|
||||
|
||||
@@ -6,16 +6,12 @@ from ..views import RootView
|
||||
|
||||
|
||||
class DummyModuleMeta:
|
||||
def __init__(self, package, url_namespace=None):
|
||||
def __init__(self, package):
|
||||
self.package = package
|
||||
self.url_namespace = url_namespace
|
||||
|
||||
@property
|
||||
def url_name(self):
|
||||
if self.url_namespace:
|
||||
return self.url_namespace + ':root'
|
||||
else:
|
||||
return 'root'
|
||||
def root_url_name(self):
|
||||
return self.package.replace('.', '_') + ':root'
|
||||
|
||||
class DummyModuleConfig:
|
||||
def __init__(self, modules):
|
||||
@@ -30,17 +26,17 @@ class DummyModuleConfig:
|
||||
class ViewsTestCase(SimpleTestCase):
|
||||
def test_root(self):
|
||||
modules = {
|
||||
'module1': DummyModuleMeta('pkg1', url_namespace='ns1'),
|
||||
'module1': DummyModuleMeta('pkg1'),
|
||||
'module2': DummyModuleMeta('pkg2'),
|
||||
'moduleC': DummyModuleMeta('pkgC', url_namespace='nsC'),
|
||||
'moduleD': DummyModuleMeta('pkgD', url_namespace='nsD'),
|
||||
'moduleC': DummyModuleMeta('pkgC'),
|
||||
'moduleD': DummyModuleMeta('pkgD'),
|
||||
}
|
||||
expected_root_urls = [
|
||||
('pkg1', 'ns1:root'), ('pkg2', 'root'), ('pkgD', 'nsD:root')
|
||||
('pkg1', 'pkg1:root'), ('pkg2', 'pkg2:root'), ('pkgD', 'pkgD:root')
|
||||
]
|
||||
|
||||
def fake_reverse(name):
|
||||
if name == 'nsC:root':
|
||||
if name == 'pkgC:root':
|
||||
raise NoReverseMatch()
|
||||
return '/'
|
||||
|
||||
@@ -57,7 +53,7 @@ class ViewsTestCase(SimpleTestCase):
|
||||
called_names = [call.args[0] for call in mocked_reverse.call_args_list]
|
||||
self.assertEqual(len(called_names), len(modules))
|
||||
for m in modules.values():
|
||||
self.assertIn(m.url_name, called_names)
|
||||
self.assertIn(m.root_url_name, called_names)
|
||||
|
||||
def test_integrated_root(self):
|
||||
with override_settings(MODULE_CONFIG=DummyModuleConfig({})):
|
||||
|
||||
Reference in New Issue
Block a user