# 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