This commit is contained in:
@@ -4,7 +4,9 @@ import sys
|
||||
import unittest
|
||||
import pytest
|
||||
|
||||
from ..config import DJANGO_SETTINGS_MODULE_NAME
|
||||
from unittest import mock
|
||||
|
||||
from ..config import DJANGO_SETTINGS_DIR
|
||||
from ..program import Program
|
||||
|
||||
|
||||
@@ -24,7 +26,7 @@ class MainTestCase(unittest.TestCase):
|
||||
|
||||
self.assertEqual(os.EX_OK, exitval, 'program() does not return os.EX_OK')
|
||||
self.assertTrue(os.path.isdir(project_dir), 'project directory was not created')
|
||||
settings_dir = os.path.join(project_dir, DJANGO_SETTINGS_MODULE_NAME)
|
||||
settings_dir = os.path.join(project_dir, DJANGO_SETTINGS_DIR)
|
||||
self.assertTrue(os.path.isdir(settings_dir), 'settings directory was not created')
|
||||
settings_file = os.path.join(settings_dir, 'settings.py')
|
||||
self.assertTrue(os.path.isfile(settings_file), 'settings.py was not created')
|
||||
@@ -44,6 +46,12 @@ class MainTestCase(unittest.TestCase):
|
||||
tmpdir = self.tmpdir
|
||||
project_dir = os.path.join(str(tmpdir), 'env', 'django')
|
||||
|
||||
argv = ['-c', project_dir]
|
||||
self._program(argv=argv)
|
||||
|
||||
argv = ['-a', 'django_deploy', '-a', 'django_deploy.tests.fake_app', project_dir]
|
||||
self._program(argv=argv)
|
||||
|
||||
expected_installed_apps = [
|
||||
'django.contrib.admin',
|
||||
'django.contrib.auth',
|
||||
@@ -51,17 +59,10 @@ class MainTestCase(unittest.TestCase):
|
||||
'django.contrib.sessions',
|
||||
'django.contrib.messages',
|
||||
'django.contrib.staticfiles',
|
||||
'fake_app1',
|
||||
'fake_app2',
|
||||
'django_deploy.tests.fake_app',
|
||||
]
|
||||
|
||||
argv = ['-c', project_dir]
|
||||
self._program(argv=argv)
|
||||
|
||||
argv = ['-a', 'django_deploy', '-a', 'django_deploy.tests', project_dir]
|
||||
self._program(argv=argv)
|
||||
|
||||
settings_dir = os.path.join(project_dir, DJANGO_SETTINGS_MODULE_NAME)
|
||||
settings_dir = os.path.join(project_dir, DJANGO_SETTINGS_DIR)
|
||||
sys.path.insert(0, settings_dir)
|
||||
settings = importlib.import_module('settings')
|
||||
if sys.version_info.major == 2: # pragma: no cover
|
||||
@@ -69,4 +70,54 @@ class MainTestCase(unittest.TestCase):
|
||||
else: # pragma: no cover
|
||||
importlib.reload(settings) # pylint: disable=no-member
|
||||
sys.path.pop(0)
|
||||
|
||||
self.assertListEqual(expected_installed_apps, settings.INSTALLED_APPS)
|
||||
|
||||
def test_merge_root_urlconf(self):
|
||||
tmpdir = self.tmpdir
|
||||
project_dir = os.path.join(str(tmpdir), 'env', 'django')
|
||||
|
||||
argv = ['-c', project_dir]
|
||||
self._program(argv=argv)
|
||||
|
||||
argv = ['-a', 'django_deploy', '-a', 'django_deploy.tests.fake_app', project_dir]
|
||||
self._program(argv=argv)
|
||||
|
||||
if 'django.contrib.admin' in sys.modules:
|
||||
original_admin = sys.modules['django.contrib.admin']
|
||||
else:
|
||||
original_admin = None
|
||||
mock_admin = mock.Mock()
|
||||
sys.modules['django.contrib.admin'] = mock_admin
|
||||
|
||||
from django.urls import path
|
||||
|
||||
expected_urlpatterns = [
|
||||
('URLPattern', 'admin/', mock_admin.site.urls),
|
||||
('URLResolver', 'fake/'),
|
||||
]
|
||||
|
||||
settings_dir = os.path.join(project_dir, DJANGO_SETTINGS_DIR)
|
||||
sys.path.insert(0, settings_dir)
|
||||
root_urlconf = importlib.import_module('urls')
|
||||
if sys.version_info.major == 2: # pragma: no cover
|
||||
reload(root_urlconf) # pylint: disable=undefined-variable
|
||||
else: # pragma: no cover
|
||||
importlib.reload(root_urlconf) # pylint: disable=no-member
|
||||
sys.path.pop(0)
|
||||
|
||||
if original_admin:
|
||||
sys.modules['django.contrib.admin'] = original_admin
|
||||
|
||||
real_urlpatterns = root_urlconf.urlpatterns
|
||||
self.assertEqual(len(expected_urlpatterns), len(real_urlpatterns))
|
||||
|
||||
for i in range(0, len(expected_urlpatterns)):
|
||||
expected = expected_urlpatterns[i]
|
||||
real = real_urlpatterns[i]
|
||||
self.assertEqual(expected[0], real.__class__.__name__)
|
||||
if expected[0] == 'URLPattern':
|
||||
self.assertIsNotNone(real.pattern.match(expected[1]))
|
||||
self.assertEqual(expected[2], real.callback)
|
||||
else:
|
||||
raise Exception(dir(real))
|
||||
|
||||
Reference in New Issue
Block a user