FIX #5
All checks were successful
buildbot/tox Build done.

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:
2019-11-19 14:12:37 +01:00
parent dc7784e76c
commit b812de6c80
4 changed files with 15 additions and 8 deletions

View File

@@ -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] = {}

View File

@@ -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

View File

@@ -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'),

View File

@@ -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'),
]