![Roman Podolyaka](/assets/img/avatar_default.png)
In addition to running tests with different Python and SQLAlchemy versions, they should also be run on different DB backends, which are used in production (PostgreSQL and MySQL). This patch: - modifies test_db.cfg to run tests on PostgreSQL and MySQL (Jenkins Slave credentials are used here, to ensure these tests are always run by Jenkins gate); if a backend is not available, test cases will be skipped for it - concurrency is set to 1 (sharing of the one MySQL or PostgreSQL DB among different test runner processes would lead to race conditions) - fixes tests dropping FK columns in MySQL: in earlier MySQL versions dropping a column that is a part of a FK constraint would lead to dropping of the FK too. As of MySQL 5.5 that's not the case anymore: if one tries to drop such column, he/she will get a very obscure error (something like "Error on rename of './openstack_citest/#sql-4af_aa2' to './openstack_citest/tmp_adddropcol' (errno: 150)") '\nALTER TABLE tmp_adddropcol DROP COLUMN r2'). So the solution if to drop FK constraints first, and only then the columns it is made up of Change-Id: I8c5d2874c83e7df46da69969ed54d85437c849e7
46 lines
1.2 KiB
INI
46 lines
1.2 KiB
INI
[tox]
|
|
minversion = 1.6
|
|
skipsdist = True
|
|
envlist = py26,py27,py26sa07,py27sa07,py33,pep8
|
|
|
|
[testenv]
|
|
usedevelop = True
|
|
install_command = pip install {opts} {packages}
|
|
setenv = VIRTUAL_ENV={envdir}
|
|
deps = -r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/test-requirements.txt
|
|
commands =
|
|
python setup.py testr --slowest --testr-args='{posargs} --concurrency=1'
|
|
|
|
[testenv:py26sa07]
|
|
basepython = python2.6
|
|
deps = sqlalchemy>=0.7,<=0.7.99
|
|
-r{toxinidir}/test-requirements.txt
|
|
|
|
[testenv:py27sa07]
|
|
basepython = python2.7
|
|
deps = sqlalchemy>=0.7,<=0.7.99
|
|
-r{toxinidir}/test-requirements.txt
|
|
|
|
[testenv:pep8]
|
|
commands = flake8
|
|
|
|
[testenv:venv]
|
|
commands = {posargs}
|
|
|
|
[testenv:cover]
|
|
setenv = VIRTUAL_ENV={envdir}
|
|
commands =
|
|
python setup.py testr --slowest --testr-args='{posargs}'
|
|
|
|
[flake8]
|
|
# F841 local variable 'json_template' is assigned to but never used
|
|
# H201 no 'except:' at least use 'except Exception:'
|
|
# H302 import only modules.'bla..' does not import a module
|
|
# H306 imports not in alphabetical order
|
|
# H404 multi line docstring should start with a summary
|
|
ignore = F841,H201,H302,H306,H404
|
|
show-source = true
|
|
builtins = _
|
|
exclude=.venv,.git,.tox,dist,doc,*openstack/common*,*lib/python*,*egg,tools,build
|