-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathtox.ini
More file actions
132 lines (120 loc) · 2.79 KB
/
tox.ini
File metadata and controls
132 lines (120 loc) · 2.79 KB
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
[tox]
envlist = py39, py310, py311, py312, lint, docs
isolated_build = True
skip_missing_interpreters = True
requires =
tox>=4.0
setuptools>=65.0
pip>=23.0
wheel
[testenv]
setenv =
PYTHONPATH = {toxinidir}/src
SVF_MOCK_MODE = 1
MPLBACKEND = Agg
deps =
-r requirements.txt
pytest>=7.1.1
pytest-cov>=5.0
ruff>=0.4.2
psutil>=5.9.0
commands =
ruff check src tests
pytest --cov=src --cov-report=term-missing --cov-report=xml --ignore=tests/legacy --ignore=tests/integration --ignore=tests/performance --ignore=tests/test_jupyter_dashboard.py {posargs:tests}
[testenv:lint]
deps =
ruff>=0.4.2
mypy>=1.8.0
commands =
ruff check src tests
ruff format --check src tests
mypy src
[testenv:format]
deps =
ruff>=0.4.2
commands =
ruff format src tests
ruff check --fix src tests
[testenv:docs]
deps =
-r requirements.txt
sphinx>=4.0.0
sphinx-rtd-theme>=1.0.0
myst-parser>=0.18.1
sphinx-markdown-tables
sphinx-design
sphinx-copybutton
sphinx-autobuild
linkify-it-py
sphinxcontrib-mermaid
commands =
sphinx-build -b html docs docs/_build/html
[testenv:clean]
deps = coverage
skip_install = true
commands = coverage erase
[testenv:core]
# Test only core functionality, excluding legacy and problematic tests
setenv =
PYTHONPATH = {toxinidir}/src
SVF_MOCK_MODE = 1
MPLBACKEND = Agg
deps =
-r requirements.txt
pytest>=7.1.1
pytest-cov>=5.0
psutil>=5.9.0
commands =
pytest --cov=src --cov-report=term-missing --ignore=tests/legacy --ignore=tests/performance --ignore=tests/integration --ignore=tests/test_jupyter_dashboard.py tests/
[testenv:integration]
# Test integration tests separately with timeout
setenv =
PYTHONPATH = {toxinidir}/src
SVF_MOCK_MODE = 1
MPLBACKEND = Agg
deps =
-r requirements.txt
pytest>=7.1.1
pytest-cov>=5.0
pytest-timeout>=2.1.0
psutil>=5.9.0
commands =
pytest tests/integration/ -v --timeout=60
[testenv:performance]
# Test performance tests separately
setenv =
PYTHONPATH = {toxinidir}/src
SVF_MOCK_MODE = 1
MPLBACKEND = Agg
deps =
-r requirements.txt
pytest>=7.1.1
pytest-cov>=5.0
psutil>=5.9.0
commands =
pytest tests/performance/ -v
[testenv:api]
# Test API functionality specifically
setenv =
PYTHONPATH = {toxinidir}/src
SVF_MOCK_MODE = 1
MPLBACKEND = Agg
deps =
-r requirements.txt
pytest>=7.1.1
pytest-cov>=5.0
psutil>=5.9.0
commands =
pytest tests/test_api.py tests/test_basic_imports.py -v --tb=short
[coverage:run]
source = src
[coverage:report]
exclude_lines =
pragma: no cover
def __repr__
if self.debug:
raise NotImplementedError
if __name__ == .__main__.:
pass
raise ImportError
# Ruff configuration moved to pyproject.toml