# 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 = security,flake8,py minversion = 1.7.0 [testenv] deps = -ctests/constraints.txt -rtests/requirements-py3.txt # Extras boto3>=1.13.0 botocore>=1.3.23 Pillow>=3.4.2 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:--durations=10 docs scrapy tests} [testenv:typing] basepython = python3 deps = mypy==0.780 commands = mypy {posargs: scrapy tests} [testenv:security] basepython = python3 deps = bandit commands = bandit -r -c .bandit.yml {posargs:scrapy} [testenv:flake8] basepython = python3 deps = {[testenv]deps} pytest-flake8 commands = py.test --flake8 {posargs:docs scrapy tests} [testenv:pylint] basepython = python3 deps = {[testenv]deps} # Optional dependencies boto reppy robotexclusionrulesparser # Test dependencies pylint commands = pylint conftest.py docs extras scrapy setup.py tests [pinned] deps = -ctests/constraints.txt cryptography==2.0 cssselect==0.9.1 itemadapter==0.1.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 Twisted==17.9.0 w3lib==1.17.0 zope.interface==4.1.3 -rtests/requirements-py3.txt # Extras botocore==1.3.23 google-cloud-storage==1.29.0 Pillow==3.4.2 [testenv:pinned] deps = {[pinned]deps} lxml==3.5.0 [testenv:windows-pinned] basepython = python3 deps = {[pinned]deps} # First lxml version that includes a Windows wheel for Python 3.5, so we do # not need to build lxml from sources in a CI Windows job: lxml==3.8.0 [testenv:extra-deps] deps = {[testenv]deps} reppy robotexclusionrulesparser [testenv:asyncio] commands = {[testenv]commands} --reactor=asyncio [testenv:asyncio-pinned] commands = {[testenv:asyncio]commands} deps = {[testenv:pinned]deps} [testenv:pypy3] basepython = pypy3 commands = py.test {posargs:--durations=10 docs scrapy tests} [testenv:pypy3-pinned] basepython = {[testenv:pypy3]basepython} commands = {[testenv:pypy3]commands} deps = {[pinned]deps} lxml==4.0.0 PyPyDispatcher==2.1.0 [docs] changedir = docs deps = -rdocs/requirements.txt setenv = READTHEDOCS_PROJECT=scrapy READTHEDOCS_VERSION=master [testenv:docs] basepython = python3 changedir = {[docs]changedir} deps = {[docs]deps} setenv = {[docs]setenv} commands = sphinx-build -W -b html . {envtmpdir}/html [testenv:docs-coverage] basepython = python3 changedir = {[docs]changedir} deps = {[docs]deps} setenv = {[docs]setenv} commands = sphinx-build -b coverage . {envtmpdir}/coverage [testenv:docs-links] basepython = python3 changedir = {[docs]changedir} deps = {[docs]deps} setenv = {[docs]setenv} commands = sphinx-build -W -b linkcheck . {envtmpdir}/linkcheck