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
|
[tox]
envlist = pinned,py310,py311,py312,py313,py314,mypy,docs,types
[testenv]
deps =
pytest
pytest-asyncio
coverage[toml]
requests
aiohttp
zyte-common-items
commands =
coverage run \
--source=web_poet \
-m pytest \
--doctest-modules \
{posargs:web_poet tests}
coverage report \
--ignore-errors \
--skip-covered \
--show-missing
coverage html \
--ignore-errors
coverage xml \
--ignore-errors
[testenv:mypy]
deps =
mypy==1.16.1
aiohttp==3.12.13
andi==0.8.0
pytest==8.4.1
types-requests==2.32.4.20250611
types-python-dateutil==2.9.0.20250516
url-matcher==0.6.0
zyte-common-items==0.29.0
commands = mypy web_poet tests
[testenv:types]
deps =
{[testenv]deps}
{[testenv:mypy]deps}
pytest-mypy-testing==0.1.3
commands = py.test {posargs: tests_typing}
[testenv:docs]
changedir = docs
basepython = python3
deps =
-rdocs/requirements.txt
commands =
sphinx-build -W -b html . {envtmpdir}/html
[testenv:linters]
deps = -rrequirements-dev.txt
commands = pre-commit run --all-files --show-diff-on-failure
[testenv:pinned]
basepython = python3.10
deps =
{[testenv]deps}
pytest==7.0.0
pytest-asyncio==0.17.2
requests==2.27.0
zyte-common-items==0.1.0
aiohttp==3.7.0
attrs==21.3.0
parsel==1.5.0
url-matcher==0.4.0
tldextract==3.0.0
multidict==5.0.0
w3lib==1.22.0
async-lru==1.0.3
itemadapter==0.8.0
andi==0.5.0
python-dateutil==2.7.0
time-machine==2.7.1
packaging==20.0
# pin older cssselect for old parsel
cssselect==1.2.0
[testenv:twinecheck]
basepython = python3
deps =
twine==6.1.0
build==1.2.2.post1
commands =
python -m build --sdist
twine check dist/*
|