Also drag some mount stuff from hooks.get_urlpatterns to DjangoDeployProject.mount_app(). But this could damage previous written mounts within django_deploy.json.
This commit is contained in:
@@ -156,6 +156,12 @@ class DjangoProject(object):
|
||||
raise DjangoDeployError('django deploy hooks from {} has no ROOT_URLCONF'.format(module_path),
|
||||
code=errno.ENOLINK)
|
||||
|
||||
if urlconf.startswith('.'):
|
||||
urlconf = '{}{}'.format(module_path, urlconf)
|
||||
|
||||
if not route.endswith('/'):
|
||||
route += '/'
|
||||
|
||||
config = DjangoProjectHooksConfig(project_dir=self._project_dir)
|
||||
if module_path not in config: # pragma: no cover
|
||||
config[module_path] = {}
|
||||
|
||||
@@ -23,9 +23,10 @@ def get_urlpatterns(file_path, urlpatterns):
|
||||
for app in config:
|
||||
if 'MOUNT' in config[app]:
|
||||
route, urlconf_module = config[app]['MOUNT']
|
||||
pattern = '^{}/'.format(route)
|
||||
if urlconf_module.startswith('.'):
|
||||
urlconf_module = '{}{}'.format(app, urlconf_module)
|
||||
if route == '/':
|
||||
pattern = '^$'
|
||||
else:
|
||||
pattern = '^{}'.format(route)
|
||||
url_obj = url(pattern, include(urlconf_module))
|
||||
urls_list.append(url_obj)
|
||||
return urls_list
|
||||
|
||||
@@ -174,7 +174,7 @@ class DjangoProjectTestCase(DjangoDeployTestCase):
|
||||
project.mount_app('django_deploy.tests.fake_app1', '')
|
||||
|
||||
expected_urlpatterns = [
|
||||
('URLResolver', '^/', 'django_deploy.tests.fake_app1.urls'),
|
||||
('URLResolver', '^$', 'django_deploy.tests.fake_app1.urls'),
|
||||
]
|
||||
self.assert_urlpatterns(project_dir, expected_urlpatterns)
|
||||
|
||||
@@ -184,7 +184,7 @@ class DjangoProjectTestCase(DjangoDeployTestCase):
|
||||
project.create()
|
||||
project.mount_app('django_deploy.tests.fake_app1', 'app1')
|
||||
project.mount_app('django_deploy.tests.fake_app1', 'app1')
|
||||
project.mount_app('django_deploy.tests.fake_app2', 'app2')
|
||||
project.mount_app('django_deploy.tests.fake_app2', 'app2/')
|
||||
|
||||
expected_urlpatterns = [
|
||||
('URLResolver', '^app1/', 'django_deploy.tests.fake_app1.urls'),
|
||||
|
||||
@@ -112,7 +112,7 @@ class ProgramTestCase(DjangoDeployTestCase):
|
||||
'-c',
|
||||
'--mount-app', 'django_deploy.tests.fake_app1', 'app1',
|
||||
'--mount-app', 'django_deploy.tests.fake_app1', 'app1',
|
||||
'-m', 'django_deploy.tests.fake_app2', 'app2',
|
||||
'-m', 'django_deploy.tests.fake_app2', 'app2/',
|
||||
project_dir
|
||||
]
|
||||
exitval = self._program(argv=argv)
|
||||
@@ -138,7 +138,7 @@ class ProgramTestCase(DjangoDeployTestCase):
|
||||
project_dir = self._tmp_dir
|
||||
self._program(argv=['-c', project_dir])
|
||||
argv = [
|
||||
'-m', 'django_deploy.tests.fake_app1', 'app1',
|
||||
'-m', 'django_deploy.tests.fake_app1', '/',
|
||||
'-m', 'django_deploy.tests.fake_app0', 'app0',
|
||||
'-m', 'django_deploy.tests.fake_app2', 'app2',
|
||||
project_dir
|
||||
@@ -148,7 +148,7 @@ class ProgramTestCase(DjangoDeployTestCase):
|
||||
|
||||
# Similar code from test_api.test_mount_apps
|
||||
expected_urlpatterns = [
|
||||
('URLResolver', '^app1/', 'django_deploy.tests.fake_app1.urls'),
|
||||
('URLResolver', '^$', 'django_deploy.tests.fake_app1.urls'),
|
||||
('URLResolver', '^app2/', 'django_deploy.tests.fake_app2.urls'),
|
||||
]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user