From f9eb8dfa854bbc87c90ed468140097d60f19ebd8 Mon Sep 17 00:00:00 2001 From: lampslave Date: Fri, 1 May 2020 12:57:24 +0300 Subject: [PATCH 1/4] test with django 2.0-3.0 and python 3.6-3.7 --- .travis.yml | 77 +++++++++++------------------------------------------ tox.ini | 22 ++++++--------- 2 files changed, 24 insertions(+), 75 deletions(-) diff --git a/.travis.yml b/.travis.yml index 0588252..d591a8d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,75 +2,30 @@ language: python matrix: include: - - python: 2.7 - env: - - TOX_ENV=py27-dj15 - - python: 2.7 - env: - - TOX_ENV=py27-dj16 - - python: 2.7 - env: - - TOX_ENV=py27-dj17 - - python: 2.7 - env: - - TOX_ENV=py27-dj18 - - python: 2.7 - env: - - TOX_ENV=py27-dj19 - - python: 2.7 - env: - - TOX_ENV=py27-dj110 - - python: 2.7 - env: - - TOX_ENV=py27-dj111 - - python: 2.7 - env: - - TOX_ENV=py34-dj15 - - python: 3.4 - env: - - TOX_ENV=py34-dj16 - - python: 3.4 - env: - - TOX_ENV=py34-dj17 - - python: 3.4 - env: - - TOX_ENV=py34-dj18 - - python: 3.4 - env: - - TOX_ENV=py34-dj19 - - python: 3.4 - env: - - TOX_ENV=py34-dj110 - - python: 3.4 - env: - - TOX_ENV=py34-dj111 - - python: 3.4 - env: - - TOX_ENV=py34-dj20 - - python: 3.5 + - python: 3.6 env: - - TOX_ENV=py35-dj18 - - python: 3.5 + - TOX_ENV=py36-dj20 + - python: 3.6 env: - - TOX_ENV=py35-dj19 - - python: 3.5 + - TOX_ENV=py36-dj21 + - python: 3.6 env: - - TOX_ENV=py35-dj110 - - python: 3.5 + - TOX_ENV=py36-dj22 + - python: 3.6 env: - - TOX_ENV=py35-dj111 - - python: 3.5 + - TOX_ENV=py36-dj30 + - python: 3.7 env: - - TOX_ENV=py35-dj20 - - python: 3.6 + - TOX_ENV=py37-dj20 + - python: 3.7 env: - - TOX_ENV=py36-dj110 - - python: 3.6 + - TOX_ENV=py37-dj21 + - python: 3.7 env: - - TOX_ENV=py36-dj111 - - python: 3.6 + - TOX_ENV=py37-dj22 + - python: 3.7 env: - - TOX_ENV=py36-dj20 + - TOX_ENV=py37-dj30 install: - pip install tox coverage coveralls diff --git a/tox.ini b/tox.ini index 413d561..a38028b 100644 --- a/tox.ini +++ b/tox.ini @@ -1,28 +1,22 @@ [tox] -envlist = {py27,py34,py35,py36}-dj{15,16,17,18,19,110,111,20} +envlist = {py36,py37}-dj{20,21,22,30} skipsdist=True [testenv] basepython = - py27: python2.7 - py34: python3.4 - py35: python3.5 py36: python3.6 -deps = + py37: python3.7 +deps = pytest - dj15: django>=1.5,<1.6 - dj16: django>=1.6,<1.7 - dj17: django>=1.7,<1.8 - dj18: django>=1.8,<1.9 - dj19: django>=1.9,<1.10 - dj110: django>=1.10,<1.11 - dj111: django>=1.10,<1.11 dj20: django>=2.0,<2.1 + dj21: django>=2.1,<2.2 + dj22: django>=2.2,<3.0 + dj30: django>=3.0,<3.1 commands = python setup.py test -[testenv:py27-cov] +[testenv:py36-cov] deps = - dj18: Django>=1.8,<1.9 + dj22: Django>=2.2,<3.0 command = coverage run --source=bootstrapform setup.py test From 11bd9471c4935ec6ae79afa032b6f0e5ec04cd89 Mon Sep 17 00:00:00 2001 From: lampslave Date: Fri, 1 May 2020 13:18:19 +0300 Subject: [PATCH 2/4] use settings template from django 2.2 --- tests/test_settings.py | 141 +++++++++++++++++++++++++++-------------- 1 file changed, 95 insertions(+), 46 deletions(-) diff --git a/tests/test_settings.py b/tests/test_settings.py index a0f2f9f..7052f17 100644 --- a/tests/test_settings.py +++ b/tests/test_settings.py @@ -1,71 +1,120 @@ -import django +""" +Django settings for tests project. + +Generated by 'django-admin startproject' using Django 2.2. + +For more information on this file, see +https://docs.djangoproject.com/en/2.2/topics/settings/ + +For the full list of settings and their values, see +https://docs.djangoproject.com/en/2.2/ref/settings/ +""" + import os -local_path = lambda path: os.path.join(os.path.dirname(__file__), path) +# Build paths inside the project like this: os.path.join(BASE_DIR, ...) +BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) -DATABASES = { - 'default': { - 'ENGINE': 'django.db.backends.sqlite3', - 'NAME': ':memory:' - } -} -SITE_ID = 1 - -if django.VERSION < (1, 10): - MIDDLEWARE_CLASSES = ( - 'django.contrib.sessions.middleware.SessionMiddleware', - 'django.contrib.auth.middleware.AuthenticationMiddleware', - 'django.contrib.messages.middleware.MessageMiddleware', - ) -else: - MIDDLEWARE = ( - 'django.contrib.sessions.middleware.SessionMiddleware', - 'django.contrib.auth.middleware.AuthenticationMiddleware', - 'django.contrib.messages.middleware.MessageMiddleware', - ) +# Quick-start development settings - unsuitable for production +# See https://docs.djangoproject.com/en/2.2/howto/deployment/checklist/ + +# SECURITY WARNING: keep the secret key used in production secret! +SECRET_KEY = 'django-bootstrap-form' + +# SECURITY WARNING: don't run with debug turned on in production! +DEBUG = True + +ALLOWED_HOSTS = [] + + +# Application definition INSTALLED_APPS = [ + 'django.contrib.admin', + 'django.contrib.auth', 'django.contrib.contenttypes', - 'django.contrib.sites', 'django.contrib.sessions', + 'django.contrib.messages', 'django.contrib.staticfiles', - 'django.contrib.auth', - 'django.contrib.admin', - 'bootstrapform', ] -ROOT_URLCONF = 'tests.urls' - -MEDIA_URL = '/media/' - -MEDIA_ROOT = local_path('media') - -STATICFILES_STORAGE = 'pipeline.storage.PipelineStorage' -STATIC_ROOT = local_path('static/') -STATIC_URL = '/static/' -STATICFILES_FINDERS = ( - 'django.contrib.staticfiles.finders.FileSystemFinder', - 'django.contrib.staticfiles.finders.AppDirectoriesFinder' -) +MIDDLEWARE = [ + 'django.middleware.security.SecurityMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.common.CommonMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', + 'django.middleware.clickjacking.XFrameOptionsMiddleware', +] -TEMPLATE_DIRS = ( - local_path('templates'), -) +ROOT_URLCONF = 'tests.urls' TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', + 'DIRS': [], 'APP_DIRS': True, - 'DIRS': [ - local_path('templates'), - ], 'OPTIONS': { 'context_processors': [ + 'django.template.context_processors.debug', + 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', + 'django.contrib.messages.context_processors.messages', ], }, }, ] -SECRET_KEY = 'django-bootstrap-form' +WSGI_APPLICATION = 'tests.wsgi.application' + + +# Database +# https://docs.djangoproject.com/en/2.2/ref/settings/#databases + +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.sqlite3', + 'NAME': ':memory:' + } +} + + +# Password validation +# https://docs.djangoproject.com/en/2.2/ref/settings/#auth-password-validators + +AUTH_PASSWORD_VALIDATORS = [ + { + 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', + }, +] + + +# Internationalization +# https://docs.djangoproject.com/en/2.2/topics/i18n/ + +LANGUAGE_CODE = 'en-us' + +TIME_ZONE = 'UTC' + +USE_I18N = True + +USE_L10N = True + +USE_TZ = True + + +# Static files (CSS, JavaScript, Images) +# https://docs.djangoproject.com/en/2.2/howto/static-files/ + +STATIC_URL = '/static/' From caf27562b3ab479203588ed9ee10ae6d9c3a2bf1 Mon Sep 17 00:00:00 2001 From: lampslave Date: Fri, 1 May 2020 13:26:28 +0300 Subject: [PATCH 3/4] use settings template from django 2.2 - fix runtests.py --- runtests.py | 38 ++++++++++++++------------------------ tests/test_settings.py | 1 + 2 files changed, 15 insertions(+), 24 deletions(-) diff --git a/runtests.py b/runtests.py index 935d781..21fae6c 100644 --- a/runtests.py +++ b/runtests.py @@ -1,32 +1,13 @@ #!/usr/bin/env python import sys -import django from os.path import dirname, abspath +import django from django.conf import settings -middleware = ( - 'django.contrib.sessions.middleware.SessionMiddleware', - 'django.middleware.common.CommonMiddleware', - 'django.middleware.csrf.CsrfViewMiddleware', - 'django.contrib.auth.middleware.AuthenticationMiddleware', - 'django.contrib.messages.middleware.MessageMiddleware', - 'django.middleware.clickjacking.XFrameOptionsMiddleware', - ) - - -if django.VERSION < (1, 10): - middleware_arg = { - 'MIDDLEWARE_CLASSES': middleware, - } -else: - middleware_arg = { - 'MIDDLEWARE': middleware, - } - settings.configure( - DATABASES = { + DATABASES={ 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': ':memory:' @@ -37,13 +18,14 @@ 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', - 'django.contrib.sites', + 'django.contrib.messages', + 'django.contrib.staticfiles', 'bootstrapform', ], SITE_ID=1, DEBUG=False, ROOT_URLCONF='', - TEMPLATES = [ # For >= Django 1.10 + TEMPLATES=[ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'APP_DIRS': True, @@ -54,7 +36,15 @@ }, }, ], - **middleware_arg + MIDDLEWARE=[ + 'django.middleware.security.SecurityMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.common.CommonMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', + 'django.middleware.clickjacking.XFrameOptionsMiddleware', + ] ) diff --git a/tests/test_settings.py b/tests/test_settings.py index 7052f17..68cf06c 100644 --- a/tests/test_settings.py +++ b/tests/test_settings.py @@ -37,6 +37,7 @@ 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', + 'bootstrapform', ] MIDDLEWARE = [ From 1fc7e3af58f429a6792413789bf321097ea3900c Mon Sep 17 00:00:00 2001 From: lampslave Date: Fri, 1 May 2020 13:29:26 +0300 Subject: [PATCH 4/4] use settings template from django 2.2 - fix runtests.py again --- runtests.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/runtests.py b/runtests.py index 21fae6c..b553612 100644 --- a/runtests.py +++ b/runtests.py @@ -31,7 +31,10 @@ 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ + 'django.template.context_processors.debug', + 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', + 'django.contrib.messages.context_processors.messages', ], }, },