diff --git a/.travis.yml b/.travis.yml index 2cd69e0..aeb5d9f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,62 +1,105 @@ language: python python: 3.5 env: - - TOX_ENV=py27-dj17 - - TOX_ENV=py27-dj18 - - TOX_ENV=py27-dj19 - - TOX_ENV=py27-dj110 - - TOX_ENV=py27-dj111 - - TOX_ENV=py34-dj17 - - TOX_ENV=py34-dj18 - - TOX_ENV=py34-dj19 - - TOX_ENV=py34-dj110 - - TOX_ENV=py34-dj111 - - TOX_ENV=py34-dj20 - - TOX_ENV=py35-dj18 - - TOX_ENV=py35-dj19 - - TOX_ENV=py35-dj110 - - TOX_ENV=py35-dj111 - - TOX_ENV=py35-dj20 - - TOX_ENV=py35-dj21 - - TOX_ENV=py35-djmaster - # - TOX_ENV=py36-dj111 - # - TOX_ENV=py36-dj20 - # - TOX_ENV=py36-dj21 - # - TOX_ENV=py36-djmaster - # - TOX_ENV=py37-dj20 - # - TOX_ENV=py37-dj21 - # - TOX_ENV=py37-djmaster + - TOX_ENV=py27-dj17-sqlite + - TOX_ENV=py27-dj17-postgres + - TOX_ENV=py27-dj18-sqlite + - TOX_ENV=py27-dj18-postgres + - TOX_ENV=py27-dj19-sqlite + - TOX_ENV=py27-dj19-postgres + - TOX_ENV=py27-dj110-sqlite + - TOX_ENV=py27-dj110-postgres + - TOX_ENV=py27-dj111-sqlite + - TOX_ENV=py27-dj111-postgres + - TOX_ENV=py34-dj17-sqlite + - TOX_ENV=py34-dj17-postgres + - TOX_ENV=py34-dj18-sqlite + - TOX_ENV=py34-dj18-postgres + - TOX_ENV=py34-dj19-sqlite + - TOX_ENV=py34-dj19-postgres + - TOX_ENV=py34-dj110-sqlite + - TOX_ENV=py34-dj110-postgres + - TOX_ENV=py34-dj111-sqlite + - TOX_ENV=py34-dj111-postgres + - TOX_ENV=py34-dj20-sqlite + - TOX_ENV=py34-dj20-postgres + - TOX_ENV=py35-dj18-sqlite + - TOX_ENV=py35-dj18-postgres + - TOX_ENV=py35-dj19-sqlite + - TOX_ENV=py35-dj19-postgres + - TOX_ENV=py35-dj110-sqlite + - TOX_ENV=py35-dj110-postgres + - TOX_ENV=py35-dj111-sqlite + - TOX_ENV=py35-dj111-postgres + - TOX_ENV=py35-dj20-sqlite + - TOX_ENV=py35-dj20-postgres + - TOX_ENV=py35-dj21-sqlite + - TOX_ENV=py35-dj21-postgres + - TOX_ENV=py35-dj22-sqlite + - TOX_ENV=py35-dj22-postgres matrix: include: - python: "3.6" - env: TOX_ENV=py36-dj111 + env: + - TOX_ENV=py36-dj111-sqlite + - TOX_ENV=py36-dj111-postgres - python: "3.6" - env: TOX_ENV=py36-dj20 + env: + - TOX_ENV=py36-dj20-sqlite + - TOX_ENV=py36-dj20-postgres - python: "3.6" - env: TOX_ENV=py36-dj21 + env: + - TOX_ENV=py36-dj21-sqlite + - TOX_ENV=py36-dj21-postgres - python: "3.6" - env: TOX_ENV=py36-djmaster + env: + - TOX_ENV=py36-dj22-sqlite + - TOX_ENV=py36-dj22-postgres + - python: "3.6" + env: + - TOX_ENV=py36-djmaster-sqlite + - TOX_ENV=py36-djmaster-postgres - python: "3.7" - env: TOX_ENV=py37-dj20 + env: + - TOX_ENV=py37-dj20-sqlite + - TOX_ENV=py37-dj20-postgres dist: xenial language: python sudo: required - python: "3.7" - env: TOX_ENV=py37-dj21 + env: + - TOX_ENV=py37-dj21-sqlite + - TOX_ENV=py37-dj21-postgres dist: xenial language: python sudo: required - python: "3.7" - env: TOX_ENV=py37-djmaster + env: + - TOX_ENV=py37-dj22-sqlite + - TOX_ENV=py37-dj22-postgres + dist: xenial + language: python + sudo: required + - python: "3.7" + env: + - TOX_ENV=py37-djmaster-sqlite + - TOX_ENV=py37-djmaster-postgres dist: xenial language: python sudo: required allow_failures: - - env: TOX_ENV=py35-djmaster - - env: TOX_ENV=py36-djmaster - - env: TOX_ENV=py37-djmaster + - env: + - TOX_ENV=py36-djmaster-sqlite + - TOX_ENV=py36-djmaster-postgres + - env: + - TOX_ENV=py37-djmaster-sqlite + - TOX_ENV=py37-djmaster-postgres install: - pip install tox +services: + - postgresql +before_script: + - psql -c 'create database admin_interface;' -U postgres script: - tox -e $TOX_ENV sudo: false diff --git a/tests/settings.py b/tests/settings.py index ef33456..2008427 100644 --- a/tests/settings.py +++ b/tests/settings.py @@ -62,13 +62,34 @@ TEMPLATES = [{ }, },] -DATABASES = { - 'default': { +database_engine = os.environ.get('DATABASE_ENGINE', 'sqlite') +database_config = { + 'sqlite': { 'ENGINE': 'django.db.backends.sqlite3', - 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), + 'NAME': ':memory:', + }, + # 'mysql': { + # 'ENGINE': 'django.db.backends.mysql', + # 'NAME': 'admin_interface', + # 'USER': 'mysql', + # 'PASSWORD': 'mysql', + # 'HOST': '', + # 'PORT': '', + # }, + 'postgres': { + 'ENGINE': 'django.db.backends.postgresql_psycopg2', + 'NAME': 'admin_interface', + 'USER': 'postgres', + 'PASSWORD': 'postgres', + 'HOST': '', + 'PORT': '', } } +DATABASES = { + 'default': database_config.get(database_engine), +} + MEDIA_ROOT = os.path.join(BASE_DIR, 'admin_interface/public/media/') MEDIA_URL = '/media/' diff --git a/tox.ini b/tox.ini index e000ac3..6a8a8f7 100644 --- a/tox.ini +++ b/tox.ini @@ -1,10 +1,10 @@ [tox] envlist = - py27-{dj17,dj18,dj19,dj110,dj111}, - py34-{dj17,dj18,dj19,dj110,dj111,dj20}, - py35-{dj18,dj19,dj110,dj111,dj20,dj21,djmaster}, - py36-{dj18,dj19,dj110,dj111,dj20,dj21,djmaster}, - py37-{dj20,dj21,djmaster}, + py27-{dj17,dj18,dj19,dj110,dj111}-{sqlite,postgres}, + py34-{dj17,dj18,dj19,dj110,dj111,dj20}-{sqlite,postgres}, + py35-{dj18,dj19,dj110,dj111,dj20,dj21,dj22}-{sqlite,postgres}, + py36-{dj18,dj19,dj110,dj111,dj20,dj21,dj22,djmaster}-{sqlite,postgres}, + py37-{dj20,dj21,dj22,djmaster}-{sqlite,postgres}, [testenv] passenv = CI TRAVIS TRAVIS_* deps = @@ -15,9 +15,16 @@ deps = dj111: Django >= 1.11, < 1.12 dj20: Django >= 2.0, < 2.1 dj21: Django >= 2.1, < 2.2 + dj22: Django >= 2.2, < 2.3 djmaster: https://github.com/django/django/archive/master.tar.gz + # mysql: mysqlclient + postgres: psycopg2-binary coverage codecov +setenv = + sqlite: DATABASE_ENGINE=sqlite + # mysql: DATABASE_ENGINE=mysql + postgres: DATABASE_ENGINE=postgres commands = coverage run --append --source=admin_interface setup.py test coverage report -m