forked from juju/python-libjuju
-
Notifications
You must be signed in to change notification settings - Fork 0
/
tox.ini
116 lines (103 loc) · 2.7 KB
/
tox.ini
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
# Tox (http://tox.testrun.org/) is a tool for running tests
# in multiple virtualenvs. This configuration file will run the
# test suite on all supported python versions. To use it, "pip install tox"
# (pre ubuntu 24.04 -- otherwise consider using pipx or apt instead of pip)
# and then run "tox" from this directory.
[tox]
envlist = lint,py3,py38,py39,py310,py311,docs
skipsdist=True
[pytest]
markers =
serial: mark a test that must run by itself
wait_for_idle: mark a test that waits for the model to be idle
bundle: mark a test that uses a bundle
asyncio_mode = auto
filterwarnings =
ignore::DeprecationWarning:websockets
[testenv]
usedevelop=True
commands =
pip install urllib3<2
pip install pylxd
python -m pytest --tb native -ra -v -s -n auto -k 'not integration' -m 'not serial' {posargs}
passenv =
HOME
TEST_AGENTS
LXD_DIR
deps =
macaroonbakery
toposort
typing-inspect
paramiko
ipdb
mock
pytest
pytest-asyncio
pytest-xdist
Twine
websockets<14.0
kubernetes<31.0.0
hvac
packaging
setuptools
[testenv:docs]
deps =
-r docs/requirements.txt
allowlist_externals = rm
commands =
rm -rf docs/_build/
sphinx-build -b html docs/ docs/_build/
[testenv:lint]
commands =
flake8 {posargs} juju tests examples
deps =
flake8
[testenv:integration]
envdir = {toxworkdir}/py3
commands =
pip install urllib3<2
pip install pylxd
python -m pytest \
--tb native \
-ra -v -n 1 \
-k 'integration' \
--ignore {toxinidir}/tests/integration/test_crossmodel.py \
--ignore {toxinidir}/tests/integration/test_model.py \
-m 'not serial' \
{posargs}
[testenv:integration-quarantine]
envdir = {toxworkdir}/py3
commands =
pip install urllib3<2
pip install pylxd
python -m pytest \
--tb native \
-ra -v -n 1 \
-m 'not serial' \
{posargs} \
{toxinidir}/tests/integration/test_crossmodel.py \
{toxinidir}/tests/integration/test_model.py
[testenv:unit]
envdir = {toxworkdir}/py3
commands =
pip install urllib3<2
pip install pylxd
python -m pytest --tb native -ra -v -n auto {toxinidir}/tests/unit {posargs}
[testenv:serial]
# tests that can't be run in parallel
# there's one test marked with 'serial'
# it doesn't get run in CI
envdir = {toxworkdir}/py3
commands =
pip install urllib3<2
pip install pylxd
python -m pytest --tb native -ra -v -s {posargs:-m 'serial'}
[testenv:validate]
envdir = {toxworkdir}/validate
commands = python -m pytest --tb native -ra -vv tests/validate
[testenv:example]
envdir = {toxworkdir}/py3
commands = python {posargs}
[flake8]
exclude = juju/client/_*
ignore = E501,W504,E402