2012-05-26 14:58:14 -04:00
[tox]
2017-03-23 20:50:25 +08:00
envlist = pep8,py27dj{18,19,110},py35,releasenotes,npm
2016-10-06 14:27:22 +01:00
minversion = 2.3.2
2013-12-09 14:17:48 +00:00
skipsdist = True
2012-05-26 14:58:14 -04:00
[testenv]
2016-03-09 11:30:20 +11:00
install_command = pip install -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} {opts} {packages}
2015-12-17 13:23:36 +01:00
setenv =
VIRTUAL_ENV = {envdir}
INTEGRATION_TESTS = 0
NOSE_WITH_OPENSTACK = 1
NOSE_OPENSTACK_SHOW_ELAPSED = 1
2016-10-06 14:27:22 +01:00
whitelist_externals =
bash
2017-07-07 13:28:41 +03:00
find
2017-08-21 14:50:05 +02:00
deps = .[test]
2015-12-17 13:23:36 +01:00
-r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
commands =
2016-10-06 14:27:22 +01:00
horizon: {envpython} {toxinidir}/manage.py test --settings = horizon.test.settings {posargs}
manage: {envpython} {toxinidir}/manage.py {posargs}
py27: {[unit_tests]commands}
py35: {[unit_tests]commands}
openstack_dashboard: {envpython} {toxinidir}/manage.py test --settings = openstack_dashboard.test.settings {posargs}
runserver: {envpython} {toxinidir}/manage.py runserver {posargs}
venv: {posargs}
2012-05-26 14:58:14 -04:00
2016-09-06 12:15:50 +10:00
[testenv:py35]
setenv =
2016-10-06 14:27:22 +01:00
PYTHONUNBUFFERED = 1
2016-09-06 12:15:50 +10:00
{[testenv]setenv}
2016-10-06 14:27:22 +01:00
commands = {[unit_tests]commands}
2016-09-06 12:15:50 +10:00
2017-07-08 21:02:44 +00:00
[testenv:py27dj18]
commands =
pip install -U django> = 1.8,<1.9
{[unit_tests]commands}
2016-10-06 14:27:22 +01:00
[testenv:py27dj19]
2014-10-10 05:16:31 +09:00
commands =
2016-10-06 14:27:22 +01:00
pip install -U django> = 1.9,<1.10
{[unit_tests]commands}
2015-12-17 13:23:36 +01:00
2016-10-06 14:27:22 +01:00
[testenv:py27dj110]
2015-12-17 13:23:36 +01:00
commands =
2016-10-06 14:27:22 +01:00
pip install -U django> = 1.10,<1.11
{[unit_tests]commands}
2017-07-05 11:12:16 +01:00
[testenv:py27dj111]
commands =
pip install -U django> = 1.11,<2.0
{[unit_tests]commands}
2016-10-06 14:27:22 +01:00
[unit_tests]
2017-07-07 13:28:41 +03:00
commands =
find . -type f -name "*.pyc" -delete
bash {toxinidir}/tools/unit_tests.sh {envpython} {toxinidir} {posargs}
2015-12-17 13:23:36 +01:00
2016-10-06 14:27:22 +01:00
[testenv:pep8]
2015-12-17 13:23:36 +01:00
usedevelop = True
commands =
2017-03-15 18:41:19 +01:00
{envpython} {toxinidir}/manage.py extract_messages --verbosity 0 --check-only
2016-10-06 14:27:22 +01:00
flake8
2012-05-26 14:58:14 -04:00
2015-12-17 13:23:36 +01:00
[testenv:cover]
commands =
coverage erase
coverage run {toxinidir}/manage.py test horizon --settings = horizon.test.settings {posargs}
2016-09-28 14:58:48 -06:00
coverage run -a {toxinidir}/manage.py test openstack_dashboard --settings = openstack_dashboard.test.settings --exclude-dir=openstack_dashboard/test/integration_tests {posargs}
2017-07-11 14:19:57 +01:00
coverage run -a {toxinidir}/manage.py test openstack_auth --settings = openstack_auth.test.settings {posargs}
2015-12-17 13:23:36 +01:00
coverage xml
coverage html
2014-02-10 12:47:53 -07:00
2016-10-06 14:27:22 +01:00
[testenv:selenium]
setenv =
{[testenv]setenv}
WITH_SELENIUM = 1
SKIP_UNITTESTS = 1
commands = {[unit_tests]commands}
2016-01-12 18:43:13 +00:00
2016-10-06 14:27:22 +01:00
[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}
2016-06-29 10:18:36 +01:00
2013-01-10 14:13:59 +00:00
[testenv:py27integration]
2015-12-17 13:23:36 +01:00
# Run integration tests only
2016-05-23 17:05:00 +03:00
passenv = AVCONV_INSTALLED
2015-12-17 13:23:36 +01:00
setenv =
PYTHONHASHSEED = 0
INTEGRATION_TESTS = 1
SELENIUM_HEADLESS = 1
NOSE_WITH_OPENSTACK = 1
NOSE_OPENSTACK_SHOW_ELAPSED = 1
2013-01-10 14:13:59 +00:00
basepython = python2.7
2015-12-17 13:23:36 +01:00
commands = nosetests openstack_dashboard.test.integration_tests {posargs}
2013-01-10 14:13:59 +00:00
2015-12-17 13:23:36 +01:00
[testenv:npm]
2017-04-20 16:37:49 -07:00
passenv =
HOME
DISPLAY
2015-12-17 13:23:36 +01:00
commands =
nodeenv -p
npm install
npm run {posargs:test}
2015-04-02 10:37:32 -06:00
2015-12-17 13:23:36 +01:00
[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
2017-02-06 15:52:35 -06:00
passenv = TOX_EXTRA_DEPS http_proxy HTTP_PROXY https_proxy HTTPS_PROXY no_proxy NO_PROXY
2015-12-17 13:23:36 +01:00
# Sets deps to an empty list so nothing is installed from pip
deps =
commands =
pip install -U {env:TOX_EXTRA_DEPS:}
2016-10-06 14:27:22 +01:00
{[unit_tests]commands}
2015-12-17 13:23:36 +01:00
2017-07-08 20:53:45 +00:00
[testenv:docs]
commands =
doc8 doc/source
sphinx-build -W -b html doc/source doc/build/html
[testenv:releasenotes]
commands =
doc8 releasenotes/source releasenotes/notes
sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
2013-04-20 23:22:39 -07:00
[flake8]
2017-10-09 11:45:57 +03:00
exclude = .venv,.git,.tox,dist,*lib/python*,*egg,build,panel_template,dash_template,local_settings.py,*/local/*,*/test/test_plugins/*,.ropeproject,node_modules,openstack_dashboard/enabled/*
2017-06-09 10:47:12 +00:00
ignore =
2017-05-17 20:44:42 +00:00
# Enable the following hacking rules which are disabled by default
# H203 Use assertIs(Not)None to check for None
# H904 Delay string interpolations at logging calls
enable-extensions = H203,H904
2015-03-30 13:30:17 +03:00
max-complexity = 20
2017-08-19 07:15:38 +00:00
# flake8-import-order configurations
2017-07-02 10:50:06 +00:00
import-order-style = pep8
2017-08-19 07:15:38 +00:00
application-import-names = horizon,openstack_dashboard
2014-01-03 17:31:49 +01:00
[hacking]
2015-09-21 13:22:59 +03:00
local-check-factory = horizon.hacking.checks.factory
2017-07-08 20:53:45 +00:00
[doc8]
# File extensions to check
extensions = .rst, .yaml
# Maximal line length should be 80 but we have some overlong lines.
# Let's not get far more in.
max-line-length = 80
# Disable some doc8 checks:
# D000: Check RST validity
# - cannot handle "none" for code-block directive
ignore = D000