Add python 3.7 gating

This also moves all tests in standard venv

Depends-On: I248c7ff3e306fa1086920c24baa73312e5e31b91
Change-Id: I23a6046ae6741ed71c52d3129d6238d4a6dd1f1e
This commit is contained in:
Mehdi Abaakouk 2018-07-26 07:45:22 +02:00
parent dd404b6ca7
commit 92782ad6a7
4 changed files with 41 additions and 144 deletions

View File

@ -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

View File

@ -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]

14
run-tests.sh Executable file
View File

@ -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

86
tox.ini
View File

@ -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/*