summaryrefslogtreecommitdiff
path: root/tox.ini
blob: fd328a282dbe3538df525b60bc7588b692fe88a3 (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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
[tox]
minversion = 1.6
skipsdist = True
envlist = py34,py27,py35,functional,py34-functional,py35-functional,pep8

[testenv]
deps = -r{toxinidir}/requirements.txt
       -r{toxinidir}/test-requirements.txt
install_command = pip install -U {opts} {packages}
usedevelop = True
setenv = VIRTUAL_ENV={envdir}
         OS_TEST_PATH=ceilometer/tests/unit
passenv = OS_TEST_TIMEOUT OS_STDOUT_CAPTURE OS_STDERR_CAPTURE OS_LOG_CAPTURE
commands =
   {toxinidir}/tools/pretty_tox.sh "{posargs}"
   oslo-config-generator --config-file=etc/ceilometer/ceilometer-config-generator.conf
whitelist_externals = bash

[testenv:py-mongodb]
setenv = OS_TEST_PATH=ceilometer/tests/functional/
commands = pifpaf run mongodb {toxinidir}/tools/pretty_tox.sh "{posargs}"

[testenv:py-mysql]
setenv = OS_TEST_PATH=ceilometer/tests/functional/
commands = pifpaf run mysql {toxinidir}/tools/pretty_tox.sh "{posargs}"

[testenv:py-pgsql]
setenv = OS_TEST_PATH=ceilometer/tests/functional/
commands = pifpaf run postgresql {toxinidir}/tools/pretty_tox.sh "{posargs}"

# Functional tests for elastic search
[testenv:py-elastic]
setenv = OS_TEST_PATH=ceilometer/tests/functional/
commands = pifpaf run elasticsearch {toxinidir}/tools/pretty_tox.sh "{posargs}"

[testenv:functional]
setenv = VIRTUAL_ENV={envdir}
         OS_TEST_PATH=ceilometer/tests/functional/
passenv = CEILOMETER_*
commands =
   bash -x {toxinidir}/run-functional-tests.sh "{posargs}"

[testenv:py34-functional]
setenv = VIRTUAL_ENV={envdir}
         OS_TEST_PATH=ceilometer/tests/functional/
basepython = python3.4
passenv = CEILOMETER_*
commands =
   bash -x {toxinidir}/run-functional-tests.sh "{posargs}"

[testenv:py35-functional]
setenv = VIRTUAL_ENV={envdir}
         OS_TEST_PATH=ceilometer/tests/functional/
basepython = python3.5
passenv = CEILOMETER_*
commands =
   bash -x {toxinidir}/run-functional-tests.sh "{posargs}"

[testenv:integration]
setenv = VIRTUAL_ENV={envdir}
         OS_TEST_PATH=./ceilometer/tests/integration
         OS_TEST_TIMEOUT=2400
         GABBI_LIVE_FAIL_IF_NO_TEST=1
passenv = {[testenv]passenv} HEAT_* CEILOMETER_* GNOCCHI_* AODH_* GLANCE_* NOVA_* ADMIN_*
# FIXME(sileht): run gabbi-run to failfast in case of error because testr
# doesn't support --failfast, but we loose the testr report.
commands =
   bash -c 'cd ceilometer/tests/integration/gabbi/gabbits-live && gabbi-run -x < autoscaling.yaml'
#   bash -x {toxinidir}/tools/pretty_tox.sh "{posargs}"

# NOTE(chdent): The gabbi tests are also run under the other functional
# tox targets. This target simply provides a target to directly run just
# gabbi tests without needing to do discovery across the entire body of
# tests.
[testenv:gabbi]
setenv = OS_TEST_PATH=ceilometer/tests/functional/gabbi
passenv = CEILOMETER_*
commands = pifpaf run mongodb {toxinidir}/tools/pretty_tox.sh "{posargs}"

[testenv:cover]
setenv = OS_TEST_PATH=ceilometer/tests
commands =
   python setup.py testr --slowest --coverage --testr-args="{posargs}"

[testenv:pep8]
deps = hacking<0.12,>=0.11.0
commands =
    flake8
    # Check that .po and .pot files are valid:
    bash -c "find ceilometer -type f -regex '.*\.pot?' -print0|xargs -0 -n 1 msgfmt --check-format -o /dev/null"

[testenv:releasenotes]
commands = sphinx-build -a -E -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html

[testenv:install-guide]
# NOTE(jaegerandi): this target does not use constraints because
# upstream infra does not yet support it. Once that's fixed, we can
# drop the install_command.
install_command = pip install -U --force-reinstall {opts} {packages}
commands = sphinx-build -a -E -W -d install-guide/build/doctrees -b html install-guide/source install-guide/build/html

[testenv:genconfig]
commands = oslo-config-generator --config-file=etc/ceilometer/ceilometer-config-generator.conf

[testenv:docs]
commands = python setup.py build_sphinx
setenv = PYTHONHASHSEED=0

[testenv:venv]
commands = {posargs}
setenv = PYTHONHASHSEED=0

[testenv:debug]
commands = bash -x oslo_debug_helper {posargs}

[testenv:debug-mongodb]
setenv = OS_TEST_PATH=ceilometer/tests/functional
commands = pifpaf --debug run mongodb oslo_debug_helper {posargs}

[testenv:debug-mysql]
setenv = OS_TEST_PATH=ceilometer/tests/functional
commands = pifpaf --debug run mysql oslo_debug_helper {posargs}

[testenv:debug-pgsql]
setenv = OS_TEST_PATH=ceilometer/tests/functional
commands = pifpaf --debug run postgresql oslo_debug_helper {posargs}

[testenv:debug-elastic]
setenv = OS_TEST_PATH=ceilometer/tests/functional
commands = pifpaf --debug run elasticsearch oslo_debug_helper {posargs}

[flake8]
ignore =
exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build,install-guide
show-source = True

[hacking]
import_exceptions =
    ceilometer.i18n
local-check-factory = ceilometer.hacking.checks.factory

[testenv:api-ref]
commands =
  rm -rf api-ref/build
  sphinx-build -W -b html -d api-ref/build/doctrees api-ref/source api-ref/build/html