summaryrefslogtreecommitdiff
path: root/tox.ini
blob: 60018420042ee0d08ce10c0c4b775c7ef6cad5a5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
[tox]
minversion = 3.1
skipsdist = True
envlist = pep8,py35
ignore_basepython_conflict = True

[testenv]
basepython = python3
setenv = VIRTUAL_ENV={envdir}
         OS_TEST_TIMEOUT=150
         OS_STDOUT_CAPTURE={env:OS_STDOUT_CAPTURE:1}
         OS_STDERR_CAPTURE={env:OS_STDERR_CAPTURE:1}
         OS_LOG_CAPTURE={env:OS_LOG_CAPTURE:1}
         OS_LOG_DEFAULTS={env:OS_LOG_DEFAULTS:""}
passenv = ZUUL_TEST_ROOT
          OS_STDOUT_CAPTURE
          OS_STDERR_CAPTURE
          OS_LOG_CAPTURE
          OS_LOG_DEFAULTS
          NODEPOOL_ZK_HOST
          ZUUL_MYSQL_HOST
          ZUUL_POSTGRES_HOST
usedevelop = True
install_command = pip install {opts} {packages}
whitelist_externals = bash
deps = -r{toxinidir}/requirements.txt
       -r{toxinidir}/test-requirements.txt
commands = stestr run {posargs}
           stestr slowest

[nodeenv]
install_command = bash tools/pip.sh {opts} {packages}

[testenv:py35]
install_command = {[nodeenv]install_command}

[testenv:py36]
install_command = {[nodeenv]install_command}

[testenv:bindep]
# Do not install any requirements. We want this to be fast and work even if
# system dependencies are missing, since it's used to tell you what system
# dependencies are missing! This also means that bindep must be installed
# separately, outside of the requirements files.
deps = bindep
commands = bindep test

[testenv:pep8]
# --ignore-missing-imports tells mypy to not try to follow imported modules
# out of the current tree. As you might expect, we don't want to run static
# type checking on the world - just on ourselves.
commands =
  flake8 {posargs}
  mypy --ignore-missing-imports zuul

[testenv:cover]
install_command = {[nodeenv]install_command}
setenv =
    {[testenv]setenv}
    PYTHON=coverage run --source zuul --parallel-mode
commands =
    stestr run {posargs}
    coverage combine
    coverage html -d cover
    coverage xml -o cover/coverage.xml

[testenv:docs]
deps = -r{toxinidir}/doc/requirements.txt
       -r{toxinidir}/test-requirements.txt
commands =
  sphinx-build -E -W -d doc/build/doctrees -b html doc/source/ doc/build/html

[testenv:venv]
commands = {posargs}

[testenv:nodepool]
install_command = {[nodeenv]install_command}
commands = stestr run --concurrency=1 --test-path ./tests/nodepool {posargs}

[testenv:remote]
commands = stestr run --concurrency=1 --test-path ./tests/remote {posargs}
passenv = ZUUL_TEST_ROOT OS_STDOUT_CAPTURE OS_STDERR_CAPTURE OS_LOG_CAPTURE OS_LOG_DEFAULTS ZUUL_REMOTE_IPV4 ZUUL_SSH_KEY NODEPOOL_ZK_HOST
install_command = {[nodeenv]install_command}

[flake8]
# These are ignored intentionally in openstack-infra projects;
# please don't submit patches that solely correct them or enable them.
ignore = E124,E125,E129,E252,E402,E741,H,W503,W504
show-source = True
exclude = .venv,.tox,dist,doc,build,*.egg,node_modules