Skip to content

Commit ded1e6c

Browse files
authored
Update test dependencies (#166)
1 parent 9714b78 commit ded1e6c

File tree

9 files changed

+144
-48
lines changed

9 files changed

+144
-48
lines changed

.config/constraints.txt

Lines changed: 47 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,55 @@
11
# This file was autogenerated by uv via the following command:
2-
# tox run deps
2+
# tox run -e deps
33
ansible-compat==24.10.0 # via molecule
44
argparse-manpage==4.6 # via subprocess-tee (pyproject.toml)
5+
asttokens==3.0.0 # via stack-data
56
attrs==25.3.0 # via jsonschema, referencing
67
babel==2.17.0 # via mkdocs-git-revision-date-localized-plugin, mkdocs-material
78
backrefs==5.8 # via mkdocs-material
9+
bindep==2.13.0 # via tox-extra
810
bracex==2.5.post1 # via wcmatch
11+
cachetools==5.5.2 # via tox
912
cairocffi==1.7.1 # via cairosvg
1013
cairosvg==2.7.1 # via subprocess-tee (pyproject.toml)
1114
certifi==2025.1.31 # via requests
1215
cffi==1.17.1 # via cairocffi, cryptography
16+
chardet==5.2.0 # via tox
1317
charset-normalizer==3.4.1 # via requests
1418
click==8.1.8 # via click-help-colors, mkdocs, molecule
1519
click-help-colors==0.9.4 # via molecule
16-
colorama==0.4.6 # via griffe, mkdocs-material
17-
coverage==7.8.0 # via pytest-cov
20+
colorama==0.4.6 # via griffe, mkdocs-material, tox
21+
coverage==7.8.0 # via coverage-enable-subprocess, subprocess-tee (pyproject.toml)
22+
coverage-enable-subprocess==1.0 # via subprocess-tee (pyproject.toml)
1823
cryptography==44.0.2 # via ansible-core
1924
cssselect2==0.8.0 # via cairosvg
25+
decorator==5.2.1 # via ipdb, ipython
2026
defusedxml==0.7.1 # via cairosvg
27+
distlib==0.3.9 # via virtualenv
28+
distro==1.9.0 # via bindep
2129
enrich==1.2.7 # via molecule, subprocess-tee (pyproject.toml)
22-
exceptiongroup==1.2.2 # via pytest
30+
exceptiongroup==1.2.2 # via ipython, pytest
2331
execnet==2.1.1 # via pytest-xdist
32+
executing==2.2.0 # via stack-data
33+
filelock==3.18.0 # via tox, virtualenv
2434
ghp-import==2.1.0 # via mkdocs
2535
gitdb==4.0.12 # via gitpython
26-
gitpython==3.1.44 # via mkdocs-git-revision-date-localized-plugin
36+
gitpython==3.1.44 # via mkdocs-git-revision-date-localized-plugin, tox-extra
2737
griffe==1.7.2 # via mkdocstrings-python
2838
idna==3.10 # via requests
2939
importlib-metadata==8.6.1 # via markdown, mkdocs, mkdocs-get-deps, mkdocstrings
3040
importlib-resources==5.0.7 # via ansible-core
3141
iniconfig==2.1.0 # via pytest
42+
ipdb==0.13.13 # via subprocess-tee (pyproject.toml)
43+
ipython==8.18.1 # via ipdb, subprocess-tee (pyproject.toml)
44+
jedi==0.19.2 # via ipython
3245
jinja2==3.1.6 # via ansible-core, mkdocs, mkdocs-material, mkdocstrings, molecule
3346
jsonschema==4.23.0 # via ansible-compat, molecule
3447
jsonschema-specifications==2024.10.1 # via jsonschema
3548
markdown==3.7 # via markdown-include, mkdocs, mkdocs-autorefs, mkdocs-material, mkdocstrings, pymdown-extensions
3649
markdown-include==0.8.1 # via subprocess-tee (pyproject.toml)
3750
markdown-it-py==3.0.0 # via rich
3851
markupsafe==3.0.2 # via jinja2, mkdocs, mkdocs-autorefs, mkdocstrings
52+
matplotlib-inline==0.1.7 # via ipython
3953
mdurl==0.1.2 # via markdown-it-py
4054
mergedeep==1.3.4 # via mkdocs, mkdocs-get-deps
4155
mkdocs==1.6.1 # via mkdocs-autorefs, mkdocs-git-revision-date-localized-plugin, mkdocs-material, mkdocstrings, subprocess-tee (pyproject.toml)
@@ -47,19 +61,28 @@ mkdocs-material-extensions==1.3.1 # via mkdocs-material, subprocess-tee (pyproj
4761
mkdocstrings==0.29.1 # via mkdocstrings-python, subprocess-tee (pyproject.toml)
4862
mkdocstrings-python==1.16.10 # via subprocess-tee (pyproject.toml)
4963
molecule==6.0.3 # via subprocess-tee (pyproject.toml)
50-
packaging==24.2 # via ansible-compat, ansible-core, mkdocs, molecule, pytest
64+
packaging==24.2 # via ansible-compat, ansible-core, bindep, mkdocs, molecule, pyproject-api, pytest, pytest-sugar, tox, tox-extra, tox-uv
5165
paginate==0.5.7 # via mkdocs-material
66+
parsley==1.3 # via bindep
67+
parso==0.8.4 # via jedi
5268
pathspec==0.12.1 # via mkdocs
69+
pbr==6.1.1 # via bindep
70+
pexpect==4.9.0 # via ipython
5371
pillow==11.1.0 # via cairosvg, subprocess-tee (pyproject.toml)
54-
platformdirs==4.3.7 # via mkdocs-get-deps
55-
pluggy==1.5.0 # via molecule, pytest
72+
platformdirs==4.3.7 # via mkdocs-get-deps, tox, virtualenv
73+
pluggy==1.5.0 # via molecule, pytest, tox
74+
prompt-toolkit==3.0.50 # via ipython
75+
psutil==7.0.0 # via pytest-xdist
76+
ptyprocess==0.7.0 # via pexpect
77+
pure-eval==0.2.3 # via stack-data
5678
pycparser==2.22 # via cffi
57-
pygments==2.19.1 # via mkdocs-material, rich
79+
pygments==2.19.1 # via ipython, mkdocs-material, rich
5880
pymdown-extensions==10.14.3 # via mkdocs-material, mkdocstrings, subprocess-tee (pyproject.toml)
59-
pytest==8.3.5 # via pytest-cov, pytest-instafail, pytest-plus, pytest-xdist, subprocess-tee (pyproject.toml)
60-
pytest-cov==6.1.1 # via subprocess-tee (pyproject.toml)
81+
pyproject-api==1.9.0 # via tox
82+
pytest==8.3.5 # via pytest-instafail, pytest-plus, pytest-sugar, pytest-xdist, subprocess-tee (pyproject.toml)
6183
pytest-instafail==0.5.0 # via subprocess-tee (pyproject.toml)
6284
pytest-plus==0.7.0 # via subprocess-tee (pyproject.toml)
85+
pytest-sugar==1.0.0 # via subprocess-tee (pyproject.toml)
6386
pytest-xdist==3.6.1 # via subprocess-tee (pyproject.toml)
6487
python-dateutil==2.9.0.post0 # via ghp-import
6588
pytz==2025.2 # via mkdocs-git-revision-date-localized-plugin
@@ -69,18 +92,29 @@ referencing==0.36.2 # via jsonschema, jsonschema-specifications
6992
requests==2.32.3 # via mkdocs-material
7093
rich==14.0.0 # via enrich, molecule
7194
rpds-py==0.24.0 # via jsonschema, referencing
95+
setproctitle==1.3.5 # via pytest-xdist
7296
six==1.17.0 # via python-dateutil
7397
smmap==5.0.2 # via gitdb
74-
subprocess-tee==0.4.2 # via ansible-compat
98+
stack-data==0.6.3 # via ipython
99+
termcolor==3.0.1 # via pytest-sugar
75100
tinycss2==1.4.0 # via cairosvg, cssselect2
76-
tomli==2.2.1 # via argparse-manpage, coverage, pytest
101+
tomli==2.2.1 # via argparse-manpage, coverage, ipdb, pyproject-api, pytest, tox
102+
traitlets==5.14.3 # via ipython, matplotlib-inline
77103
urllib3==2.3.0 # via requests
78104
watchdog==6.0.0 # via mkdocs
79105
wcmatch==10.0 # via molecule
106+
wcwidth==0.2.13 # via prompt-toolkit
80107
webencodings==0.5.1 # via cssselect2, tinycss2
81108
zipp==3.21.0 # via importlib-metadata
82109

83110
# The following packages were excluded from the output:
84111
# ansible-core
85112
# resolvelib
113+
# setuptools
114+
# subprocess-tee
115+
# tox-extra
116+
# tox-uv
117+
# tox
86118
# typing-extensions
119+
# uv
120+
# virtualenv

.config/dictionary.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1+
addopts
12
autoupdate
23
capsys
34
codespell
45
commitlint
56
devel
67
dists
8+
instafail
79
mkdocstrings
810
nosetests
911
packit
@@ -17,6 +19,8 @@ PYTHONPYCACHEPREFIX
1719
PYTHONUNBUFFERED
1820
REQPASS
1921
Sbarnea
22+
showlocals
2023
Sorin
2124
ssbarnea
25+
testpaths
2226
TOXENV

.config/requirements-lock.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
# This file was autogenerated by uv via the following command:
2-
# tox run deps
2+
# tox run -e deps

.config/requirements-test.in

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,15 @@
1+
coverage-enable-subprocess # see https://github.com/nedbat/coveragepy/issues/1341#issuecomment-1228942657
2+
coverage[toml] >= 6.4.4
13
enrich>=1.2.6
4+
ipdb
5+
ipython
26
molecule>=3.4.0 # ansible is needed but no direct imports are made
3-
pytest-cov>=2.12.1
4-
pytest-instafail
5-
pytest-plus>=0.2
6-
pytest-xdist>=2.3.0
7+
pytest >= 7.2.2
8+
pytest-instafail >= 0.5.0 # only for local development, via PYTEST_ADDOPTS=-edit
9+
pytest-plus >= 0.6 # for PYTEST_REQPASS
10+
pytest-sugar # shows failures immediately, even with xdist
11+
pytest-xdist[psutil,setproctitle] >= 2.3.0
712
pytest>=6.2.5
13+
tox-extra>=2.1
14+
tox-uv>=1.25
15+
tox>=4.24.2

.git_archival.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
node: $Format:%H$
2+
node-date: $Format:%cI$
3+
describe-name: $Format:%(describe:tags=true)$
4+
ref-names: $Format:%D$

.gitattributes

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Force LF line endings for text files
2+
* text=auto eol=lf
3+
4+
*.png binary
5+
6+
# Needed for setuptools-scm-git-archive
7+
.git_archival.txt export-subst

.pre-commit-config.yaml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -108,31 +108,31 @@ repos:
108108
hooks:
109109
- id: deps
110110
name: Upgrade constraints files and requirements
111-
files: ^(pyproject\.toml|requirements\.txt)$
111+
files: ^(pyproject\.toml|.config/.*)$
112+
always_run: true
112113
language: python
113-
language_version: "3.10" # minimal we support officially
114-
entry: python3 -m uv pip compile -q --python-version=3.9 --all-extras --output-file=.config/constraints.txt pyproject.toml --upgrade
114+
entry: python3 -m uv pip compile -q --all-extras --python-version=3.9 --output-file=.config/constraints.txt pyproject.toml --upgrade
115115
pass_filenames: false
116116
stages:
117117
- manual
118118
additional_dependencies:
119-
- uv>=0.4.3
119+
- uv>=0.6.6
120120
- id: pip-compile
121121
name: Check constraints files and requirements
122-
files: ^(pyproject\.toml|requirements\.txt)$
122+
files: ^(pyproject\.toml|\.config/.*)$
123123
language: python
124-
entry: python3 -m uv pip compile -q --python-version=3.9 --all-extras --output-file=.config/constraints.txt pyproject.toml
124+
entry: uv pip compile -q --all-extras --python-version=3.9 --output-file=.config/constraints.txt pyproject.toml
125125
pass_filenames: false
126126
additional_dependencies:
127-
- uv>=0.4.3
127+
- uv>=0.6.6
128128
- id: lock
129129
name: Update requirements-lock.txt
130130
alias: lock
131131
always_run: true
132132
entry: python3 -m uv pip compile -q --python-version=3.9 --upgrade --output-file=.config/requirements-lock.txt pyproject.toml --strip-extras
133-
files: ^.config\/.*requirements.*$
133+
files: ^(pyproject\.toml|\.config/.*)$
134134
language: python
135135
pass_filenames: false
136136
stages: [manual]
137137
additional_dependencies:
138-
- uv>=0.4.3
138+
- uv>=0.6.6

pyproject.toml

Lines changed: 32 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ classifiers = [
1818
"Intended Audience :: Developers",
1919
"Intended Audience :: Information Technology",
2020
"Intended Audience :: System Administrators",
21-
"License :: OSI Approved :: MIT License",
2221
"Operating System :: MacOS",
2322
"Operating System :: POSIX :: Linux",
2423
"Operating System :: POSIX",
@@ -35,7 +34,7 @@ classifiers = [
3534
description = "subprocess-tee extends standard library subprocess.run to allow display and capture of executed command output."
3635
dynamic = ["version", "dependencies", "optional-dependencies"]
3736
keywords = ["subprocess", "asyncio"]
38-
license = {text = "MIT"}
37+
license = "MIT"
3938
maintainers = [
4039
{"email" = "sorin.sbarnea@gmail.com", "name" = "Sorin Sbarnea"}
4140
]
@@ -59,13 +58,21 @@ skip = ".tox,.mypy_cache,build,.git,.eggs,pip-wheel-metadata"
5958
[tool.coverage.report]
6059
exclude_also = ["pragma: no cover", "if TYPE_CHECKING:"]
6160
# Increase it just so it would pass on any single-python run
62-
fail_under = 92
61+
fail_under = 78
62+
ignore_errors = true
63+
omit = ["**/.cache/*", "src/*/_version.py"]
6364
show_missing = true
6465
skip_covered = true
6566
skip_empty = true
6667

6768
[tool.coverage.run]
69+
# Do not use branch until bug is fixes:
70+
# https://github.com/nedbat/coveragepy/issues/605
71+
branch = false
72+
concurrency = ["multiprocessing", "thread"]
73+
omit = ["**/.cache/*", "src/*/_version.py"]
6874
parallel = true
75+
source = ["src"]
6976

7077
[tool.mypy]
7178
check_untyped_defs = true
@@ -125,6 +132,13 @@ score = "n"
125132
[tool.pyright]
126133
pythonVersion = "3.9"
127134

135+
[tool.pytest.ini_options]
136+
addopts = ["--strict-config", "--strict-markers", "-p", "no:pytest_cov", "--durations=10", "--durations-min=1.0", "--failed-first", "--instafail"]
137+
filterwarnings = [
138+
"ignore:No data was collected:coverage.exceptions.CoverageWarning"
139+
]
140+
testpaths = ["test"]
141+
128142
[tool.ruff]
129143
cache-dir = "./.cache/.ruff"
130144
fix = true
@@ -188,8 +202,21 @@ sort_table_keys = true
188202

189203
[tool.uv.pip]
190204
annotation-style = "line"
191-
custom-compile-command = "tox run deps"
192-
no-emit-package = ["ansible-core", "pip", "resolvelib", "typing_extensions", "uv"]
205+
custom-compile-command = "tox run -e deps"
206+
no-emit-package = [
207+
"ansible-core",
208+
"pip",
209+
"resolvelib",
210+
"setuptools",
211+
"subprocess-tee",
212+
"tox-extra",
213+
"tox-uv",
214+
"tox",
215+
"types-pyyaml",
216+
"typing-extensions",
217+
"uv",
218+
"virtualenv"
219+
]
193220

194221
[tool.vulture]
195222
exclude = [

0 commit comments

Comments
 (0)