From 01c17d28f6dc08ba6caa10ff56136e0b7b84cd2a Mon Sep 17 00:00:00 2001 From: ErikKalkoken Date: Tue, 18 Feb 2020 19:34:44 +0100 Subject: [PATCH] Extend tox setup to include core only testing --- .gitlab-ci.yml | 36 ++++++++++++++++++++------ runtests.py | 4 +-- tests/{settings.py => settings_all.py} | 12 +++------ tests/settings_core.py | 33 +++++++++++++++++++++++ tox.ini | 10 ++++--- 5 files changed, 71 insertions(+), 24 deletions(-) rename tests/{settings.py => settings_all.py} (94%) create mode 100644 tests/settings_core.py diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 91ef1f0e..d6c0ddc1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -6,25 +6,45 @@ before_script: - python -V - pip install wheel tox -test-3.5: +test-3.5-core: image: python:3.5-buster script: - - tox -e py35 + - tox -e py35-core -test-3.6: +test-3.6-core: image: python:3.6-buster script: - - tox -e py36 + - tox -e py36-core -test-3.7: +test-3.7-core: image: python:3.7-buster script: - - tox -e py37 + - tox -e py37-core -test-3.8: +test-3.8-core: image: python:3.8-buster script: - - tox -e py38 + - tox -e py38-core + +test-3.5-all: + image: python:3.5-buster + script: + - tox -e py35-all + +test-3.6-all: + image: python:3.6-buster + script: + - tox -e py36-all + +test-3.7-all: + image: python:3.7-buster + script: + - tox -e py37-all + +test-3.8-all: + image: python:3.8-buster + script: + - tox -e py38-all deploy_production: stage: deploy diff --git a/runtests.py b/runtests.py index cdf361a0..983a8e7d 100644 --- a/runtests.py +++ b/runtests.py @@ -2,9 +2,7 @@ import os import sys -if __name__ == "__main__": - os.environ['DJANGO_SETTINGS_MODULE'] = 'tests.settings' - +if __name__ == "__main__": try: from django.core.management import execute_from_command_line except ImportError: diff --git a/tests/settings.py b/tests/settings_all.py similarity index 94% rename from tests/settings.py rename to tests/settings_all.py index 045f1089..ade3edd5 100644 --- a/tests/settings.py +++ b/tests/settings_all.py @@ -1,5 +1,7 @@ """ -Alliance Auth Test Suite Django settings. +Alliance Auth Test Suite Django settings + +Testing all services and plug-in apps """ from allianceauth.project_template.project_name.settings.base import * @@ -41,14 +43,6 @@ ROOT_URLCONF = 'tests.urls' CACHES['default'] = {'BACKEND': 'django.core.cache.backends.db.DatabaseCache'} -##################### -# HR Configuration -##################### -# JACK_KNIFE_URL - Url for the audit page of API Jack knife -# Should seriously replace with your own. -##################### -JACK_KNIFE_URL = 'http://example.com/eveapi/audit.php' - ######################## # XenForo Configuration ######################## diff --git a/tests/settings_core.py b/tests/settings_core.py new file mode 100644 index 00000000..84086fc4 --- /dev/null +++ b/tests/settings_core.py @@ -0,0 +1,33 @@ +""" +Alliance Auth Test Suite Django settings + +Testing core packages only +""" + +from allianceauth.project_template.project_name.settings.base import * + +# Use nose to run all tests +TEST_RUNNER = 'django_nose.NoseTestSuiteRunner' + +NOSE_ARGS = [ + #'--with-coverage', + #'--cover-package=', + #'--exe', # If your tests need this to be found/run, check they py files are not chmodded +x +] + +# Celery configuration +CELERY_ALWAYS_EAGER = True # Forces celery to run locally for testing + +INSTALLED_APPS += [ + 'django_nose', +] + +ROOT_URLCONF = 'tests.urls' + +CACHES['default'] = {'BACKEND': 'django.core.cache.backends.db.DatabaseCache'} + +PASSWORD_HASHERS = [ + 'django.contrib.auth.hashers.MD5PasswordHasher', +] + +LOGGING = None # Comment out to enable logging for debugging diff --git a/tox.ini b/tox.ini index d009fdfc..156a9334 100644 --- a/tox.ini +++ b/tox.ini @@ -1,11 +1,12 @@ [tox] skipsdist = true usedevelop = true -envlist = py{35,36,37,38}-dj{2X} +envlist = py{35,36,37,38}-{all} [testenv] setenv = - DJANGO_SETTINGS_MODULE = settings + all: DJANGO_SETTINGS_MODULE = tests.settings_all + core: DJANGO_SETTINGS_MODULE = tests.settings_core basepython = py35: python3.5 py36: python3.6 @@ -13,8 +14,9 @@ basepython = py38: python3.8 deps= coverage - dj2X: Django>=2.0,<3.0 + Django>=2.0,<3.0 install_command = pip install -e ".[testing]" -U {opts} {packages} commands = - coverage run runtests.py -v 2 + all: coverage run runtests.py -v 2 + core: coverage run runtests.py allianceauth.authentication.tests.test_app_settings -v 2 coverage report -m