From 92782ad6a7c2f2fbd217b5a13173040e5c43877a Mon Sep 17 00:00:00 2001 From: Mehdi Abaakouk Date: Thu, 26 Jul 2018 07:45:22 +0200 Subject: [PATCH] Add python 3.7 gating This also moves all tests in standard venv Depends-On: I248c7ff3e306fa1086920c24baa73312e5e31b91 Change-Id: I23a6046ae6741ed71c52d3129d6238d4a6dd1f1e --- .zuul.yaml | 62 ++----------------------------------- bindep.txt | 23 ++++++++------ run-tests.sh | 14 +++++++++ tox.ini | 86 ++++++---------------------------------------------- 4 files changed, 41 insertions(+), 144 deletions(-) create mode 100755 run-tests.sh diff --git a/.zuul.yaml b/.zuul.yaml index 3e5ac8ba..eb180f9c 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -1,12 +1,7 @@ - project: check: jobs: - - panko-tox-py27-mongodb - - panko-tox-py27-mysql - - panko-tox-py27-postgresql - - panko-tox-py35-mongodb - - panko-tox-py35-mysql - - panko-tox-py35-postgresql + - telemetry-tox-py37 - telemetry-dsvm-integration # TripleO jobs that deploy Telemetry. # Note we don't use a project-template here, so it's easier @@ -26,58 +21,7 @@ voting: false gate: jobs: - - panko-tox-py27-mongodb - - panko-tox-py27-mysql - - panko-tox-py27-postgresql - - panko-tox-py35-mongodb - - panko-tox-py35-mysql - - panko-tox-py35-postgresql + - telemetry-dsvm-integration + - telemetry-tox-py37 -- job: - name: panko-tox-py27-mongodb - parent: openstack-tox - description: | - Run tests using ``py27-mongodb`` environment. - vars: - tox_envlist: py27-mongodb - -- job: - name: panko-tox-py27-mysql - parent: openstack-tox - description: | - Run tests using ``py27-mysql`` environment. - vars: - tox_envlist: py27-mysql - -- job: - name: panko-tox-py27-postgresql - parent: openstack-tox - description: | - Run tests using ``py27-postgresql`` environment. - vars: - tox_envlist: py27-postgresql - -- job: - name: panko-tox-py35-mongodb - parent: openstack-tox - description: | - Run tests using ``py35-mongodb`` environment. - vars: - tox_envlist: py35-mongodb - -- job: - name: panko-tox-py35-mysql - parent: openstack-tox - description: | - Run tests using ``py35-mysql`` environment. - vars: - tox_envlist: py35-mysql - -- job: - name: panko-tox-py35-postgresql - parent: openstack-tox - description: | - Run tests using ``py35-postgresql`` environment. - vars: - tox_envlist: py35-postgresql diff --git a/bindep.txt b/bindep.txt index 9f8050f4..184d372e 100644 --- a/bindep.txt +++ b/bindep.txt @@ -1,9 +1,14 @@ -mongodb [test platform:dpkg] -mongodb-server [test platform:rpm !platform:opensuseproject] -dev-db/mongodb [test platform:gentoo] -mysql-server [test platform:dpkg] -postgresql [test] -postgresql-client [test platform:dpkg] -postgresql-devel [test platform:rpm] -postgresql-server [test platform:rpm] -libpq-dev [test platform:dpkg] +mongodb [platform:dpkg] +mongodb-server [platform:rpm] + +mysql-server +mysql-client [platform:dpkg] +mysql [platform:rpm] + +postgresql +postgresql-client [platform:dpkg] +postgresql-devel [platform:rpm] +postgresql-server [platform:rpm] +libpq-dev [platform:dpkg] + +python37 [platform:rpm py37] diff --git a/run-tests.sh b/run-tests.sh new file mode 100755 index 00000000..b9511853 --- /dev/null +++ b/run-tests.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +set -e +set -o pipefail + +# Run unit test +export OS_TEST_PATH=panko/tests/unit +stestr run $* + +# Run functional test +export OS_TEST_PATH=panko/tests/functional/ +for backend in $PANKO_BACKENDS; do + pifpaf run $backend -- stestr run $* +done diff --git a/tox.ini b/tox.ini index 3ef5ae66..26c02efb 100644 --- a/tox.ini +++ b/tox.ini @@ -1,67 +1,25 @@ [tox] minversion = 1.6 skipsdist = True -envlist = py35,py27,pep8 +envlist = py{37,35,27}{,-mongodb,-mysql,-postgresql,-elasticsearch},pep8 [testenv] deps = -r{toxinidir}/requirements.txt -r{toxinidir}/test-requirements.txt install_command = pip install -U {opts} {packages} usedevelop = True -setenv = VIRTUAL_ENV={envdir} - OS_TEST_PATH=panko/tests/unit +setenv = + PANKO_BACKENDS=mongodb mysql postgresql + mongodb: PANKO_BACKENDS=mongodb + mysql: PANKO_BACKENDS=mysql + postgresql: PANKO_BACKENDS=postgresql + elasticsearch: PANKO_BACKENDS=elasticsearch # NOTE(tonyb): This project has chosen to *NOT* consume upper-constraints.txt passenv = OS_TEST_TIMEOUT OS_STDOUT_CAPTURE OS_STDERR_CAPTURE OS_LOG_CAPTURE -commands = - stestr run {posargs} - oslo-config-generator --config-file=etc/panko/panko-config-generator.conf whitelist_externals = bash - -[testenv:py27-mongodb] -setenv = OS_TEST_PATH=panko/tests/functional/ -commands = pifpaf run mongodb stestr run {posargs} - -[testenv:py35-mongodb] -basepython = python3.5 -setenv = OS_TEST_PATH=panko/tests/functional/ -commands = pifpaf run mongodb stestr run {posargs} - -[testenv:py27-mysql] -setenv = OS_TEST_PATH=panko/tests/functional/ -commands = pifpaf run mysql stestr run {posargs} - -[testenv:py35-mysql] -basepython = python3.5 -setenv = OS_TEST_PATH=panko/tests/functional/ -commands = pifpaf run mysql stestr run {posargs} - -[testenv:py27-postgresql] -setenv = OS_TEST_PATH=panko/tests/functional/ -commands = pifpaf run postgresql stestr run {posargs} - -[testenv:py35-postgresql] -basepython = python3.5 -setenv = OS_TEST_PATH=panko/tests/functional/ -commands = pifpaf run postgresql stestr run {posargs} - -[testenv:py27-elastic] -setenv = OS_TEST_PATH=panko/tests/functional/ -commands = pifpaf run elasticsearch stestr run {posargs} - -[testenv:py35-elastic] -basepython = python3 -setenv = OS_TEST_PATH=panko/tests/functional/ -commands = pifpaf run elasticsearch stestr run {posargs} - -# NOTE(chdent): The gabbi tests are also run under the other functional -# tox targets. This target simply provides a target to directly run just -# gabbi tests without needing to do discovery across the entire body of -# tests. -[testenv:gabbi] -basepython = python3 -setenv = OS_TEST_PATH=panko/tests/functional/gabbi -passenv = PANKO_* -commands = pifpaf run mongodb stestr run {posargs} +commands = + oslo-config-generator --config-file=etc/panko/panko-config-generator.conf + bash run-tests.sh {posargs} [testenv:cover] basepython = python3 @@ -104,30 +62,6 @@ basepython = python3 commands = {posargs} setenv = PYTHONHASHSEED=0 -[testenv:debug] -basepython = python3 -commands = bash -x oslo_debug_helper {posargs} - -[testenv:debug-mongodb] -basepython = python3 -setenv = OS_TEST_PATH=panko/tests/functional -commands = pifpaf --debug run mongodb oslo_debug_helper {posargs} - -[testenv:debug-mysql] -basepython = python3 -setenv = OS_TEST_PATH=panko/tests/functional -commands = pifpaf --debug run mysql oslo_debug_helper {posargs} - -[testenv:debug-pgsql] -basepython = python3 -setenv = OS_TEST_PATH=panko/tests/functional -commands = pifpaf --debug run postgresql oslo_debug_helper {posargs} - -[testenv:debug-elastic] -basepython = python3 -setenv = OS_TEST_PATH=panko/tests/functional -commands = pifpaf --debug run elasticsearch oslo_debug_helper {posargs} - [doc8] ignore = D000 ignore-path = .venv,.git,.tox,*panko/locale*,*lib/python*,panko.egg*,doc/build,doc/source/api,releasenotes/*