magnum-ui/tox.ini
shu-mutou 35725766f1 tox tests should respect upper-constraints.txt
This will force pip install to use the upper-constraints.txt specified
version of pip modules. When you don't do this, you are out on the
bleeding edge and become unstable everytime some python library in the
wide world changes in a way that you don't expect.

The post jobs can not use constraints file, so override the install
command there.

Change-Id: I4776140ee20ccbddb219c87cb613d48460c3b98e
Closes-Bug: #1563038
2016-04-04 14:02:39 +09:00

108 lines
4.5 KiB
INI

[tox]
envlist = py27,py27dj18,pep834
minversion = 1.6
skipsdist = True
[testenv]
usedevelop = True
setenv = VIRTUAL_ENV={envdir}
NOSE_WITH_OPENSTACK=1
NOSE_OPENSTACK_COLOR=1
NOSE_OPENSTACK_RED=0.05
NOSE_OPENSTACK_YELLOW=0.025
NOSE_OPENSTACK_SHOW_ELAPSED=1
# Note the hash seed is set to 0 until horizon can be tested with a
# random hash seed successfully.
PYTHONHASHSEED=0
install_command = pip install -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} -U {opts} {packages}
deps = -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
commands = /bin/bash run_tests.sh -N --no-pep8 {posargs}
[testenv:pep8]
commands =
/bin/bash run_tests.sh -N --pep8
/bin/bash run_tests.sh -N --makemessages --check-only
[testenv:venv]
# NOTE(shu-mutou) The setting of the install_command in this location
# is only required because currently infra does not actually
# support constraints files for the post job, and while
# the environment variable UPPER_CONSTRAINTS_FILE is set, there is
# no file there. It can be removed when infra changes this.
install_command = pip install -U {opts} {packages}
commands = {posargs}
[testenv:cover]
# NOTE(shu-mutou) The setting of the install_command in this location
# is only required because currently infra does not actually
# support constraints files for the post job, and while
# the environment variable UPPER_CONSTRAINTS_FILE is set, there is
# no file there. It can be removed when infra changes this.
install_command = pip install -U {opts} {packages}
commands = /bin/bash run_tests.sh -N --no-pep8 --coverage {posargs}
[testenv:py27dj18]
# NOTE(shu-mutou) The setting of the install_command in this location
# is only required because currently infra does not actually
# support constraints files for the post job, and while
# the environment variable UPPER_CONSTRAINTS_FILE is set, there is
# no file there. It can be removed when infra changes this.
install_command = pip install -U {opts} {packages}
basepython = python2.7
commands = pip install django>=1.8,<1.9
/bin/bash run_tests.sh -N --no-pep8 {posargs}
[testenv:py27integration]
# NOTE(shu-mutou) The setting of the install_command in this location
# is only required because currently infra does not actually
# support constraints files for the post job, and while
# the environment variable UPPER_CONSTRAINTS_FILE is set, there is
# no file there. It can be removed when infra changes this.
install_command = pip install -U {opts} {packages}
basepython = python2.7
commands = /bin/bash run_tests.sh -N --integration --selenium-headless {posargs}
[testenv:eslint]
passenv = *
commands = nodeenv -p
npm install
/bin/bash run_tests.sh -N --eslint
[testenv:docs]
# NOTE(shu-mutou) The setting of the install_command in this location
# is only required because currently infra does not actually
# support constraints files for the post job, and while
# the environment variable UPPER_CONSTRAINTS_FILE is set, there is
# no file there. It can be removed when infra changes this.
install_command = pip install -U {opts} {packages}
setenv = DJANGO_SETTINGS_MODULE=openstack_dashboard.test.settings
commands = python setup.py build_sphinx
[flake8]
exclude = .venv,.git,.tox,dist,*openstack/common*,*lib/python*,*egg,build,panel_template,dash_template,local_settings.py,*/local/*,*/test/test_plugins/*,.ropeproject
max-complexity = 20
[hacking]
import_exceptions = collections.defaultdict,
django.conf.settings,
django.conf.urls.include,
django.conf.urls.patterns,
django.conf.urls.url,
django.core.urlresolvers.reverse,
django.core.urlresolvers.reverse_lazy,
django.template.loader.render_to_string,
django.test.utils.override_settings,
django.utils.datastructures.SortedDict,
django.utils.encoding.force_text,
django.utils.html.conditional_escape,
django.utils.html.escape,
django.utils.http.urlencode,
django.utils.safestring.mark_safe,
django.utils.translation.npgettext_lazy,
django.utils.translation.pgettext_lazy,
django.utils.translation.ugettext_lazy,
django.utils.translation.ungettext_lazy,
operator.attrgetter,
StringIO.StringIO