989e10e7a5
Chrome in *nix environments requires the HOME and DISPLAY variables to be set for Chrome to start properlyi when running the 'npm' rule. The HOME variable is needed so Chrome can load up the user's preferences. The DISPLAY variable is needed so it know what display to launch Chrome into. Change-Id: I84f4d1d47f065158e8f5bf5691c241061cc16aab Closes-Bug: #1684321
126 lines
3.5 KiB
INI
126 lines
3.5 KiB
INI
[tox]
|
|
envlist = pep8,py27dj{18,19,110},py35,releasenotes,npm
|
|
minversion = 2.3.2
|
|
skipsdist = True
|
|
|
|
[testenv]
|
|
install_command = pip install -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} {opts} {packages}
|
|
setenv =
|
|
VIRTUAL_ENV={envdir}
|
|
INTEGRATION_TESTS=0
|
|
NOSE_WITH_OPENSTACK=1
|
|
NOSE_OPENSTACK_SHOW_ELAPSED=1
|
|
whitelist_externals =
|
|
bash
|
|
deps =
|
|
-r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/test-requirements.txt
|
|
commands =
|
|
docs: sphinx-build -W -b html doc/source doc/build/html
|
|
horizon: {envpython} {toxinidir}/manage.py test --settings=horizon.test.settings {posargs}
|
|
manage: {envpython} {toxinidir}/manage.py {posargs}
|
|
py27: {[unit_tests]commands}
|
|
py27dj18: {[unit_tests]commands}
|
|
py35: {[unit_tests]commands}
|
|
openstack_dashboard: {envpython} {toxinidir}/manage.py test --settings=openstack_dashboard.test.settings {posargs}
|
|
releasenotes: sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
|
|
runserver: {envpython} {toxinidir}/manage.py runserver {posargs}
|
|
venv: {posargs}
|
|
|
|
[testenv:py35]
|
|
setenv =
|
|
PYTHONUNBUFFERED = 1
|
|
{[testenv]setenv}
|
|
commands = {[unit_tests]commands}
|
|
|
|
[testenv:py27dj19]
|
|
commands =
|
|
pip install -U django>=1.9,<1.10
|
|
{[unit_tests]commands}
|
|
|
|
[testenv:py27dj110]
|
|
commands =
|
|
pip install -U django>=1.10,<1.11
|
|
{[unit_tests]commands}
|
|
|
|
[unit_tests]
|
|
commands = bash {toxinidir}/tools/unit_tests.sh {envpython} {toxinidir} {posargs}
|
|
|
|
[testenv:pep8]
|
|
usedevelop = True
|
|
commands =
|
|
{envpython} {toxinidir}/manage.py extract_messages --verbosity 0 --check-only
|
|
flake8
|
|
|
|
[testenv:cover]
|
|
commands =
|
|
coverage erase
|
|
coverage run {toxinidir}/manage.py test horizon --settings=horizon.test.settings {posargs}
|
|
coverage run -a {toxinidir}/manage.py test openstack_dashboard --settings=openstack_dashboard.test.settings --exclude-dir=openstack_dashboard/test/integration_tests {posargs}
|
|
coverage xml
|
|
coverage html
|
|
|
|
[testenv:selenium]
|
|
setenv =
|
|
{[testenv]setenv}
|
|
WITH_SELENIUM=1
|
|
SKIP_UNITTESTS=1
|
|
commands = {[unit_tests]commands}
|
|
|
|
[testenv:selenium-headless]
|
|
setenv =
|
|
{[testenv]setenv}
|
|
SELENIUM_HEADLESS=1
|
|
WITH_SELENIUM=1
|
|
SKIP_UNITTESTS=1
|
|
commands = {[unit_tests]commands}
|
|
|
|
[testenv:selenium-phantomjs]
|
|
setenv =
|
|
{[testenv]setenv}
|
|
SELENIUM_PHANTOMJS=1
|
|
WITH_SELENIUM=1
|
|
SKIP_UNITTESTS=1
|
|
commands = {[unit_tests]commands}
|
|
|
|
[testenv:py27integration]
|
|
# Run integration tests only
|
|
passenv = AVCONV_INSTALLED
|
|
setenv =
|
|
PYTHONHASHSEED=0
|
|
INTEGRATION_TESTS=1
|
|
SELENIUM_HEADLESS=1
|
|
NOSE_WITH_OPENSTACK=1
|
|
NOSE_OPENSTACK_SHOW_ELAPSED=1
|
|
basepython = python2.7
|
|
commands = nosetests openstack_dashboard.test.integration_tests {posargs}
|
|
|
|
[testenv:npm]
|
|
passenv =
|
|
HOME
|
|
DISPLAY
|
|
commands =
|
|
nodeenv -p
|
|
npm install
|
|
npm run {posargs:test}
|
|
|
|
[testenv:tests_system_packages]
|
|
# Provide an environment for system packagers that dont want anything from pip
|
|
# Any extra deps needed for this env can be passed by setting TOX_EXTRA_DEPS
|
|
sitepackages = True
|
|
passenv = TOX_EXTRA_DEPS
|
|
# Sets deps to an empty list so nothing is installed from pip
|
|
deps =
|
|
commands =
|
|
pip install -U {env:TOX_EXTRA_DEPS:}
|
|
{[unit_tests]commands}
|
|
|
|
[flake8]
|
|
exclude = .venv,.git,.tox,dist,*lib/python*,*egg,build,panel_template,dash_template,local_settings.py,*/local/*,*/test/test_plugins/*,.ropeproject,node_modules
|
|
# H405 multi line docstring summary not separated with an empty line
|
|
ignore = H405
|
|
max-complexity = 20
|
|
|
|
[hacking]
|
|
local-check-factory = horizon.hacking.checks.factory
|