This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -3,6 +3,7 @@
|
|||||||
/env/
|
/env/
|
||||||
|
|
||||||
*.pyc
|
*.pyc
|
||||||
|
.pytest_cache/
|
||||||
/.coverage
|
/.coverage
|
||||||
/.tox/
|
/.tox/
|
||||||
/geckodriver.log
|
/geckodriver.log
|
||||||
|
|||||||
@@ -36,6 +36,18 @@ class Program(object): # pylint: disable=too-few-public-methods
|
|||||||
|
|
||||||
return self._argparser.parse_args(argv)
|
return self._argparser.parse_args(argv)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def _append_to_settings(project_dir, code, comment):
|
||||||
|
settings_dir = os.path.join(project_dir, DJANGO_SETTINGS_MODULE_NAME)
|
||||||
|
settings_file = os.path.join(settings_dir, 'settings.py')
|
||||||
|
settings_file_py2cache = settings_file + 'c'
|
||||||
|
|
||||||
|
text = '\n' + comment + '\n' + code + '\n'
|
||||||
|
with open(settings_file, 'a') as f:
|
||||||
|
f.write(text)
|
||||||
|
if os.path.isfile(settings_file_py2cache):
|
||||||
|
os.unlink(settings_file_py2cache) # pragma: no cover
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _install_django_files(project_dir, overwrite=False):
|
def _install_django_files(project_dir, overwrite=False):
|
||||||
if os.path.exists(project_dir):
|
if os.path.exists(project_dir):
|
||||||
@@ -52,8 +64,7 @@ class Program(object): # pylint: disable=too-few-public-methods
|
|||||||
exitval = os.system(cmd)
|
exitval = os.system(cmd)
|
||||||
return exitval
|
return exitval
|
||||||
|
|
||||||
@staticmethod
|
def _add_installed_apps_from_app(self, project_dir, app):
|
||||||
def _add_installed_apps_from_app(project_dir, app):
|
|
||||||
settings_dir = os.path.join(project_dir, DJANGO_SETTINGS_MODULE_NAME)
|
settings_dir = os.path.join(project_dir, DJANGO_SETTINGS_MODULE_NAME)
|
||||||
|
|
||||||
settings_from_app = importlib.import_module('{}.django_settings'.format(app))
|
settings_from_app = importlib.import_module('{}.django_settings'.format(app))
|
||||||
@@ -77,18 +88,15 @@ class Program(object): # pylint: disable=too-few-public-methods
|
|||||||
|
|
||||||
if missing_apps:
|
if missing_apps:
|
||||||
sys.stdout.write('{app}: adding {apps} to INSTALLED_APPS\n'.format(app=app, apps=missing_apps))
|
sys.stdout.write('{app}: adding {apps} to INSTALLED_APPS\n'.format(app=app, apps=missing_apps))
|
||||||
comment = '### {app}: added apps with django-deploy at {timestamp}'
|
|
||||||
code = 'INSTALLED_APPS += [\n'
|
code = 'INSTALLED_APPS += [\n'
|
||||||
for add_app in missing_apps:
|
for add_app in missing_apps:
|
||||||
code += ' \'{}\',\n'.format(add_app)
|
code += ' \'{}\',\n'.format(add_app)
|
||||||
code += ']\n'
|
code += ']\n'
|
||||||
|
timestamp = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
|
||||||
|
comment = '### {app}: added apps with django-deploy at {timestamp}'.format(app=app,
|
||||||
|
timestamp=timestamp)
|
||||||
|
|
||||||
append_text = '\n' + comment + '\n' + code + '\n'
|
self._append_to_settings(project_dir, code, comment)
|
||||||
settings_file = os.path.join(settings_dir, 'settings.py')
|
|
||||||
with open(settings_file, 'a') as f:
|
|
||||||
now = datetime.datetime.now()
|
|
||||||
timestamp = now.strftime('%Y-%m-%d %H:%M:%S')
|
|
||||||
f.write(append_text.format(app=app, timestamp=timestamp))
|
|
||||||
else:
|
else:
|
||||||
sys.stdout.write('{app}: INSTALLED_APPS is fine\n'.format(app=app))
|
sys.stdout.write('{app}: INSTALLED_APPS is fine\n'.format(app=app))
|
||||||
|
|
||||||
|
|||||||
@@ -3,10 +3,6 @@ import os
|
|||||||
import sys
|
import sys
|
||||||
import unittest
|
import unittest
|
||||||
import pytest
|
import pytest
|
||||||
try:
|
|
||||||
from importlib import reload
|
|
||||||
except ImportError:
|
|
||||||
pass
|
|
||||||
|
|
||||||
from ..config import DJANGO_SETTINGS_MODULE_NAME
|
from ..config import DJANGO_SETTINGS_MODULE_NAME
|
||||||
from ..program import Program
|
from ..program import Program
|
||||||
@@ -68,6 +64,9 @@ class MainTestCase(unittest.TestCase):
|
|||||||
settings_dir = os.path.join(project_dir, DJANGO_SETTINGS_MODULE_NAME)
|
settings_dir = os.path.join(project_dir, DJANGO_SETTINGS_MODULE_NAME)
|
||||||
sys.path.insert(0, settings_dir)
|
sys.path.insert(0, settings_dir)
|
||||||
settings = importlib.import_module('settings')
|
settings = importlib.import_module('settings')
|
||||||
reload(settings)
|
if sys.version_info.major == 2: # pragma: no cover
|
||||||
|
reload(settings) # pylint: disable=undefined-variable
|
||||||
|
else: # pragma: no cover
|
||||||
|
importlib.reload(settings) # pylint: disable=no-member
|
||||||
sys.path.pop(0)
|
sys.path.pop(0)
|
||||||
self.assertListEqual(expected_installed_apps, settings.INSTALLED_APPS)
|
self.assertListEqual(expected_installed_apps, settings.INSTALLED_APPS)
|
||||||
|
|||||||
Reference in New Issue
Block a user