From 968f4a591fd267d8e13d5f04d436366498e60012 Mon Sep 17 00:00:00 2001 From: Valentin Samir Date: Sat, 19 Jun 2021 17:21:48 +0200 Subject: [PATCH] Rationalize testing and fix travis Test for couple (python version, django version) found in Debian, Ubuntu and RHEL and if not done, for every supported Django version with the last version of python Configure tox to use the locally available python3 then called without parameters --- .travis.yml | 80 ++++++++---------- Makefile | 18 ++-- tox.ini | 238 ++++++++++++++++++++++++++++------------------------ 3 files changed, 171 insertions(+), 165 deletions(-) diff --git a/.travis.yml b/.travis.yml index 5ed0024..05962df 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,71 +1,61 @@ language: python matrix: include: + # generic checks - python: "3.9" env: TOX_ENV=flake8 - python: "3.9" env: TOX_ENV=check_rst + - python: "3.9" + env: TOX_ENV=coverage + # Python 2 support. Not officialy supported but nice to known + # then it will break - python: "2.7" env: TOX_ENV=py27-django111 + - python: "2.7" + env: TOX_ENV=py27-django111 + arch: ppc64le + # Debian strech support - python: "3.5" env: TOX_ENV=py35-django111 + - python: "3.5" + env: TOX_ENV=py35-django111 + arch: ppc64le + # Ubuntu bionic and EPEL 7 support - python: "3.6" env: TOX_ENV=py36-django111 + - python: "3.6" + env: TOX_ENV=py36-django111 + arch: ppc64le + # RHEL 8 support + - python: "3.6" + env: TOX_ENV=py36-django22 + - python: "3.6" + env: TOX_ENV=py36-django22 + arch: ppc64le + # Debian buster support - python: "3.7" - env: TOX_ENV=py37-django22 + env: TOX_ENV=py37-django111 + - python: "3.7" + env: TOX_ENV=py37-django111 + arch: ppc64le + # Ubuntu focal and Ubuntu groovy support - python: "3.8" env: TOX_ENV=py38-django22 - python: "3.8" - env: TOX_ENV=py38-django30 - - python: "3.8" - env: TOX_ENV=py38-django31 + env: TOX_ENV=py38-django22 + arch: ppc64le + # Debian bullseye and Ubuntu hirsute support - python: "3.9" env: TOX_ENV=py39-django22 - python: "3.9" - env: TOX_ENV=py39-django30 + env: TOX_ENV=py39-django22 + arch: ppc64le + # Django additional supported version - python: "3.9" env: TOX_ENV=py39-django31 - python: "3.9" - env: TOX_ENV=coverage - - python: "3.8" - env: TOX_ENV=flake8 - arch: ppc64le - - python: "3.8" - env: TOX_ENV=check_rst - arch: ppc64le - - python: "2.7" - env: TOX_ENV=py27-django111 - arch: ppc64le - - python: "3.5" - env: TOX_ENV=py35-django111 - arch: ppc64le - - python: "3.6" - env: TOX_ENV=py36-django111 - arch: ppc64le - - python: "3.5" - env: TOX_ENV=py35-django20 - arch: ppc64le - - python: "3.6" - env: TOX_ENV=py36-django20 - arch: ppc64le - - python: "3.5" - env: TOX_ENV=py35-django21 - arch: ppc64le - - python: "3.6" - env: TOX_ENV=py36-django21 - arch: ppc64le - - python: "3.7" - env: TOX_ENV=py37-django22 - arch: ppc64le - - python: "3.8" - env: TOX_ENV=py38-django22 - arch: ppc64le - - python: "3.8" - env: TOX_ENV=py38-django30 - arch: ppc64le - - python: "3.8" - env: TOX_ENV=coverage - arch: ppc64le + env: TOX_ENV=py39-django32 cache: directories: diff --git a/Makefile b/Makefile index 62773c5..363f117 100644 --- a/Makefile +++ b/Makefile @@ -1,15 +1,15 @@ .PHONY: build dist docs -VERSION=`python setup.py -V` +VERSION=`python3 setup.py -V` build: - python setup.py build + python3 setup.py build install: dist - pip -V - pip install --no-cache-dir --no-deps --upgrade --force-reinstall --find-links ./dist/django-cas-server-${VERSION}.tar.gz django-cas-server + pip3 -V + pip3 install --no-cache-dir --no-deps --upgrade --force-reinstall --find-links ./dist/django-cas-server-${VERSION}.tar.gz django-cas-server uninstall: - pip uninstall django-cas-server || true + pip3 uninstall django-cas-server || true clean_pyc: find ./ -name '*.pyc' -delete @@ -34,11 +34,11 @@ clean: clean_pyc clean_build clean_coverage clean_tild_backup clean_all: clean clean_tox clean_test_venv clean_docs clean_eggs dist: - python setup.py sdist + python3 setup.py sdist test_venv/bin/python: python3 -m venv test_venv - test_venv/bin/pip install -U --requirement requirements-dev.txt 'Django>=2.0,<2.1' + test_venv/bin/pip install -U --requirement requirements-dev.txt 'Django>=3.2,<3.3' test_venv/cas/manage.py: test_venv mkdir -p test_venv/cas @@ -61,7 +61,7 @@ run_server: test_project test_venv/bin/python test_venv/cas/manage.py runserver run_tests: test_venv - python setup.py check --restructuredtext --stric + python3 setup.py check --restructuredtext --stric test_venv/bin/py.test -rw -x --cov=cas_server --cov-report html --cov-report term rm htmlcov/coverage_html.js # I am really pissed off by those keybord shortcuts @@ -72,4 +72,4 @@ docs: test_venv/bin/sphinx-build bash -c "source test_venv/bin/activate; cd docs; make html" publish_pypi_release: - python setup.py sdist bdist_wheel upload --sign + python3 setup.py sdist bdist_wheel upload --sign diff --git a/tox.ini b/tox.ini index a8a45d5..265b4ef 100644 --- a/tox.ini +++ b/tox.ini @@ -3,21 +3,14 @@ envlist= flake8, check_rst, py27-django111, - py35-django111, - py36-django111, - py37-django111, - py36-django22, - py37-django22, - py38-django22, - py39-django22, - py36-django30, - py37-django30, - py38-django30, - py39-django30, - py36-django31, - py37-django31, - py38-django31, - py39-django31, + py3-django111, + py3-django22, + py3-django31, + py3-django32, + +################## +# generic config # +################## [flake8] max-line-length=100 @@ -43,102 +36,9 @@ commands= {[post_cmd]commands} whitelist_externals={[post_cmd]whitelist_externals} -[testenv:py27-django111] -basepython=python2.7 -deps = - Django>=1.11,<1.12 - {[base]deps} - -[testenv:py35-django111] -basepython=python3.5 -deps = - Django>=1.11,<1.12 - {[base]deps} - -[testenv:py36-django111] -basepython=python3.6 -deps = - Django>=1.11,<1.12 - {[base]deps} - -[testenv:py37-django111] -basepython=python3.7 -deps = - Django>=1.11,<1.12 - {[base]deps} - -[testenv:py36-django22] -basepython=python3.6 -deps = - Django>=2.2,<3.0 - {[base]deps} - -[testenv:py37-django22] -basepython=python3.7 -deps = - Django>=2.2,<3.0 - {[base]deps} - -[testenv:py38-django22] -basepython=python3.8 -deps = - Django>=2.2,<3.0 - {[base]deps} - -[testenv:py39-django22] -basepython=python3.9 -deps = - Django>=2.2,<3.0 - {[base]deps} - -[testenv:py36-django30] -basepython=python3.6 -deps = - Django>=3.0,<3.1 - {[base]deps} - -[testenv:py37-django30] -basepython=python3.7 -deps = - Django>=3.0,<3.1 - {[base]deps} - -[testenv:py38-django30] -basepython=python3.8 -deps = - Django>=3.0,<3.1 - {[base]deps} - -[testenv:py39-django30] -basepython=python3.9 -deps = - Django>=3.0,<3.1 - {[base]deps} - -[testenv:py36-django31] -basepython=python3.6 -deps = - Django>=3.1,<3.2 - {[base]deps} - -[testenv:py37-django31] -basepython=python3.7 -deps = - Django>=3.1,<3.2 - {[base]deps} - -[testenv:py38-django31] -basepython=python3.8 -deps = - Django>=3.1,<3.2 - {[base]deps} - -[testenv:py39-django31] -basepython=python3.9 -deps = - Django>=3.1,<3.2 - {[base]deps} - +################### +# genercic checks # +################### [testenv:flake8] basepython=python3 @@ -177,3 +77,119 @@ commands= {toxinidir}/.update_coverage "{toxinidir}" "django-cas-server" {[post_cmd]commands} whitelist_externals={[post_cmd]whitelist_externals} + + +#################### +# Python 2 support # +#################### + +[testenv:py27-django111] +basepython=python2.7 +deps = + Django>=1.11,<1.12 + {[base]deps} + +################################## +# Generic Python 3 for local use # +################################## + +[testenv:py3-django111] +basepython=python3 +deps = + Django>=1.11,<1.12 + {[base]deps} + +[testenv:py3-django22] +basepython=python3 +deps = + Django>=2.2,<2.3 + {[base]deps} + +[testenv:py3-django31] +basepython=python3 +deps = + Django>=3.1,<3.2 + {[base]deps} + +[testenv:py3-django32] +basepython=python3 +deps = + Django>=3.2,<3.3 + {[base]deps} + +######################### +# Debian strech support # +######################### + +[testenv:py35-django111] +basepython=python3.5 +deps = + Django>=1.11,<1.12 + {[base]deps} + +#################################### +# Ubuntu bionic and EPEL 7 support # +#################################### + +[testenv:py36-django111] +basepython=python3.6 +deps = + Django>=1.11,<1.12 + {[base]deps} + +################## +# RHEL 8 support # +################## + +[testenv:py36-django22] +basepython=python3.6 +deps = + Django>=2.2,<3.0 + {[base]deps} + +######################### +# Debian buster support # +######################### + +[testenv:py37-django111] +basepython=python3.7 +deps = + Django>=1.11,<1.12 + {[base]deps} + +########################################## +# Ubuntu focal and Ubuntu groovy support # +########################################## + +[testenv:py38-django22] +basepython=python3.8 +deps = + Django>=2.2,<3.0 + {[base]deps} + +############################################## +# Debian bullseye and Ubuntu hirsute support # +############################################## + +[testenv:py39-django22] +basepython=python3.9 +deps = + Django>=2.2,<3.0 + {[base]deps} + +####################################### +# Django additional supported version # +####################################### + +[testenv:py39-django31] +basepython=python3.9 +deps = + Django>=3.1,<3.2 + {[base]deps} + + +[testenv:py39-django32] +basepython=python3.9 +deps = + Django>=3.2,<3.3 + {[base]deps}