scrapy/tox.ini

155 lines
3.3 KiB
INI

# Tox (https://tox.readthedocs.io/) 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"
# and then run "tox" from this directory.
[tox]
envlist = py27-pinned,py27,py27-extra-deps,pypy2,py35-pinned,py35,py36,py37,py38,py38-extra-deps
# https://tox.wiki/en/4.11.3/faq.html#testing-end-of-life-python-versions
requires = virtualenv<20.22.0
[py27]
deps =
-rrequirements-py2.txt
# Extras
botocore>=1.3.23
google-cloud-storage
leveldb
Pillow>=3.4.2
-rtests/requirements-py2.txt
[testenv]
deps =
{[py27]deps}
# >=21.2.0 causes https://github.com/scrapy/scrapy/issues/5020
Twisted>=16.0.0,<21.2.0
passenv =
S3_TEST_FILE_URI
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
GCS_TEST_FILE_URI
GCS_PROJECT_ID
commands =
py.test --cov=scrapy --cov-report= {posargs:scrapy tests}
[testenv:py27-pinned]
basepython = python2.7
deps =
cryptography==2.0
cssselect==0.9.1
lxml==3.5.0
parsel==1.5.0
Protego==0.1.15
PyDispatcher==2.0.5
pyOpenSSL==16.2.0
queuelib==1.4.2
service_identity==16.0.0
six==1.10.0
Twisted==16.0.0
w3lib==1.17.0
zope.interface==4.1.3
-rtests/requirements-py2.txt
# Extras
botocore==1.3.23
Pillow==3.4.2
[testenv:py27-extra-deps]
basepython = python2.7
deps =
{[testenv]deps}
reppy==0.3.4
robotexclusionrulesparser
[testenv:pypy2]
basepython = pypy2
commands =
py.test {posargs:scrapy tests}
deps =
{[py27]deps}
# Latest version that will not fail due to the use of the typing module.
Twisted==16.4.1
[testenv:py35]
basepython = python3.5
deps =
-rrequirements-py3.txt
-rtests/requirements-py3.txt
mock
# Extras
botocore>=1.3.23
# Pillow 10.0.0 and higher break compatibility with Scrapy 1.8.x.
Pillow<10.0.0
[testenv:py35-pinned]
basepython = python3.5
deps =
cryptography==2.0
cssselect==0.9.1
lxml==3.5.0
parsel==1.5.0
Protego==0.1.15
PyDispatcher==2.0.5
pyOpenSSL==16.2.0
queuelib==1.4.2
service_identity==16.0.0
six==1.10.0
Twisted==17.9.0
w3lib==1.17.0
zope.interface==4.1.3
-rtests/requirements-py3.txt
mock
# Extras
botocore==1.3.23
Pillow==3.4.2
[testenv:py36]
basepython = python3.6
deps = {[testenv:py35]deps}
[testenv:py37]
basepython = python3.7
deps = {[testenv:py35]deps}
[testenv:py38]
basepython = python3.8
deps = {[testenv:py35]deps}
; Will not work due to "requires = virtualenv<20.22.0" above, which is required
; for py2.7 to work.
; [testenv:pypy3]
; basepython = pypy3
; deps = {[testenv:py35]deps}
; commands =
; py.test {posargs:scrapy tests}
[docs]
changedir = docs
deps =
-rdocs/requirements.txt
[testenv:docs]
basepython = python3.8
changedir = {[docs]changedir}
deps = {[docs]deps}
commands =
sphinx-build -W -b html . {envtmpdir}/html
[testenv:docs-coverage]
changedir = {[docs]changedir}
deps = {[docs]deps}
commands =
sphinx-build -b coverage . {envtmpdir}/coverage
[testenv:docs-links]
changedir = {[docs]changedir}
deps = {[docs]deps}
commands =
sphinx-build -W -b linkcheck . {envtmpdir}/linkcheck
[testenv:py38-extra-deps]
basepython = python3.8
deps =
{[testenv:py35]deps}
robotexclusionrulesparser