From 54a708f8dd01e9f608765b387ad56819be379109 Mon Sep 17 00:00:00 2001 From: heinzel Date: Wed, 30 Oct 2019 16:42:18 +0100 Subject: [PATCH] FIX: tox is satisfied now --- .gitignore | 1 + src/django_deploy/program.py | 26 ++++++++++++++++--------- src/django_deploy/tests/test_program.py | 9 ++++----- 3 files changed, 22 insertions(+), 14 deletions(-) diff --git a/.gitignore b/.gitignore index 5517dde..02177dd 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ /env/ *.pyc +.pytest_cache/ /.coverage /.tox/ /geckodriver.log diff --git a/src/django_deploy/program.py b/src/django_deploy/program.py index 0967943..efb5d9f 100644 --- a/src/django_deploy/program.py +++ b/src/django_deploy/program.py @@ -36,6 +36,18 @@ class Program(object): # pylint: disable=too-few-public-methods 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 def _install_django_files(project_dir, overwrite=False): if os.path.exists(project_dir): @@ -52,8 +64,7 @@ class Program(object): # pylint: disable=too-few-public-methods exitval = os.system(cmd) return exitval - @staticmethod - def _add_installed_apps_from_app(project_dir, app): + def _add_installed_apps_from_app(self, project_dir, app): settings_dir = os.path.join(project_dir, DJANGO_SETTINGS_MODULE_NAME) 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: 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' for add_app in missing_apps: code += ' \'{}\',\n'.format(add_app) 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' - 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)) + self._append_to_settings(project_dir, code, comment) else: sys.stdout.write('{app}: INSTALLED_APPS is fine\n'.format(app=app)) diff --git a/src/django_deploy/tests/test_program.py b/src/django_deploy/tests/test_program.py index 589cd33..ff5196e 100644 --- a/src/django_deploy/tests/test_program.py +++ b/src/django_deploy/tests/test_program.py @@ -3,10 +3,6 @@ import os import sys import unittest import pytest -try: - from importlib import reload -except ImportError: - pass from ..config import DJANGO_SETTINGS_MODULE_NAME from ..program import Program @@ -68,6 +64,9 @@ class MainTestCase(unittest.TestCase): settings_dir = os.path.join(project_dir, DJANGO_SETTINGS_MODULE_NAME) sys.path.insert(0, settings_dir) 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) self.assertListEqual(expected_installed_apps, settings.INSTALLED_APPS)