<commit_before># Tox (http://tox.testrun.org/) is a tool for running tests in
# multiple virtualenvs. To use it, "pip install tox" and then run
# "tox" from this directory.

[tox]
skipsdist = true
envlist = modification,py{26,33,34,35,36},cover,lint

# nosetest -v => more verbose output, allows to detect busy waiting
# loops, especially on Travis

[testenv]
# packages installed separately to ensure that downstream deps problems
# are detected, c.f. #1002
commands =
    pip install -e acme[dev]
    nosetests -v acme --processes=-1
    pip install -e .[dev]
    nosetests -v certbot --processes=-1 --process-timeout=100
    pip install -e certbot-apache
    nosetests -v certbot_apache --processes=-1 --process-timeout=80
    pip install -e certbot-nginx
    nosetests -v certbot_nginx --processes=-1
    pip install -e letshelp-certbot
    nosetests -v letshelp_certbot --processes=-1
    python tests/lock_test.py

setenv =
    PYTHONPATH = {toxinidir}
    PYTHONHASHSEED = 0
# https://testrun.org/tox/latest/example/basic.html#special-handling-of-pythonhas

# cffi<=1.7 is required for oldest tests due to
# https://bitbucket.org/cffi/cffi/commits/18cdf37d6b2691301a15b0e54f49757ebd4ed0f2?at=default
# requests<=2.11.1 required for oldest tests due to
# https://github.com/shazow/urllib3/pull/930
deps =
    py{26,27}-oldest: cffi<=1.7
    py{26,27}-oldest: cryptography==0.8
    py{26,27}-oldest: configargparse==0.10.0
    py{26,27}-oldest: PyOpenSSL==0.13
    py{26,27}-oldest: requests<=2.11.1

[testenv:py27_install]
basepython = python2.7
commands =
    pip install -e acme[dev] -e .[dev] -e certbot-apache -e certbot-nginx -e letshelp-certbot

[testenv:cover]
basepython = python2.7
commands =
    pip install -e acme[dev] -e .[dev] -e certbot-apache -e certbot-nginx -e letshelp-certbot
    ./tox.cover.sh

[testenv:lint]
# recent versions of pylint do not support Python 2.6 (#97, #187)
basepython = python2.7
# separating into multiple invocations disables cross package
# duplicate code checking; if one of the commands fails, others will
# continue, but tox return code will reflect previous error
commands =
    pip install -q -e acme[dev] -e .[dev] -e certbot-apache -e certbot-nginx -e certbot-compatibility-test -e letshelp-certbot
    pylint --reports=n --rcfile=.pylintrc acme/acme certbot certbot-apache/certbot_apache certbot-nginx/certbot_nginx certbot-compatibility-test/certbot_compatibility_test letshelp-certbot/letshelp_certbot tests/lock_test.py

[testenv:mypy]
basepython = python3.4
commands =
    pip install mypy
    pip install -q -e acme[dev] -e .[dev] -e certbot-apache -e certbot-nginx -e certbot-compatibility-test -e letshelp-certbot
    mypy --py2 --ignore-missing-imports acme/acme certbot certbot-apache/certbot_apache certbot-nginx/certbot_nginx certbot-compatibility-test/certbot_compatibility_test letshelp-certbot/letshelp_certbot

[testenv:apacheconftest]
#basepython = python2.7
commands =
    pip install -e acme -e .[dev] -e certbot-apache -e certbot-nginx -e certbot-compatibility-test -e letshelp-certbot
    {toxinidir}/certbot-apache/certbot_apache/tests/apache-conf-files/apache-conf-test --debian-modules

[testenv:nginxroundtrip]
commands =
    pip install -e acme[dev] -e .[dev] -e certbot-nginx
    python certbot-compatibility-test/nginx/roundtrip.py certbot-compatibility-test/nginx/nginx-roundtrip-testdata

# This is a duplication of the command line in testenv:le_auto to
# allow users to run the modification check by running `tox`
[testenv:modification]
commands =
    {toxinidir}/tests/modification-check.sh

[testenv:apache_compat]
commands =
    docker build -t certbot-compatibility-test -f certbot-compatibility-test/Dockerfile .
    docker build -t apache-compat -f certbot-compatibility-test/Dockerfile-apache .
    docker run --rm -it apache-compat -c apache.tar.gz -vvvv
whitelist_externals =
    docker
passenv = DOCKER_*

[testenv:nginx_compat]<commit_msg>Deduplicate package lists in tox.ini (#4608)<commit_after># Tox (http://tox.testrun.org/) is a tool for running tests in
# multiple virtualenvs. To use it, "pip install tox" and then run
# "tox" from this directory.

[tox]
skipsdist = true
envlist = modification,py{26,33,34,35,36},cover,lint

# nosetest -v => more verbose output, allows to detect busy waiting
# loops, especially on Travis

[base]
# packages installed separately to ensure that downstream deps problems
# are detected, c.f. #1002
core_commands =
    pip install -e acme[dev]
    nosetests -v acme --processes=-1
    pip install -e .[dev]
    nosetests -v certbot --processes=-1 --process-timeout=100
core_install_args = -e acme[dev] -e .[dev]
core_paths = acme/acme certbot

plugin_commands =
    pip install -e certbot-apache
    nosetests -v certbot_apache --processes=-1 --process-timeout=80
    pip install -e certbot-nginx
    nosetests -v certbot_nginx --processes=-1
plugin_install_args = -e certbot-apache -e certbot-nginx
plugin_paths = certbot-apache/certbot_apache certbot-nginx/certbot_nginx

compatibility_install_args = -e certbot-compatibility-test
compatibility_paths = certbot-compatibility-test/certbot_compatibility_test

other_commands =
    pip install -e letshelp-certbot
    nosetests -v letshelp_certbot --processes=-1
    python tests/lock_test.py
other_install_args = -e letshelp-certbot
other_paths =  letshelp-certbot/letshelp_certbot tests/lock_test.py

[testenv]
commands =
    {[base]core_commands}
    {[base]plugin_commands}
    {[base]other_commands}

setenv =
    PYTHONPATH = {toxinidir}
    PYTHONHASHSEED = 0
# https://testrun.org/tox/latest/example/basic.html#special-handling-of-pythonhas

# cffi<=1.7 is required for oldest tests due to
# https://bitbucket.org/cffi/cffi/commits/18cdf37d6b2691301a15b0e54f49757ebd4ed0f2?at=default
# requests<=2.11.1 required for oldest tests due to
# https://github.com/shazow/urllib3/pull/930
deps =
    py{26,27}-oldest: cffi<=1.7
    py{26,27}-oldest: cryptography==0.8
    py{26,27}-oldest: configargparse==0.10.0
    py{26,27}-oldest: PyOpenSSL==0.13
    py{26,27}-oldest: requests<=2.11.1

[testenv:py27_install]
basepython = python2.7
commands =
    pip install {[base]core_install_args} {[base]plugin_install_args} {[base]other_install_args}

[testenv:cover]
basepython = python2.7
commands =
    pip install {[base]core_install_args} {[base]plugin_install_args} {[base]other_install_args}
    ./tox.cover.sh

[testenv:lint]
# recent versions of pylint do not support Python 2.6 (#97, #187)
basepython = python2.7
# separating into multiple invocations disables cross package
# duplicate code checking; if one of the commands fails, others will
# continue, but tox return code will reflect previous error
commands =
    pip install -q {[base]core_install_args} {[base]plugin_install_args} {[base]compatibility_install_args} {[base]other_install_args}
    pylint --reports=n --rcfile=.pylintrc {[base]core_paths} {[base]plugin_paths} {[base]compatibility_paths} {[base]other_paths}

[testenv:mypy]
basepython = python3.4
commands =
    pip install mypy
    pip install -q {[base]core_install_args} {[base]plugin_install_args} {[base]compatibility_install_args} {[base]other_install_args}
    mypy --py2 --ignore-missing-imports {[base]core_paths} {[base]plugin_paths} {[base]compatibility_paths} {[base]other_paths}

[testenv:apacheconftest]
#basepython = python2.7
commands =
    pip install {[base]core_install_args} {[base]plugin_install_args} {[base]compatibility_install_args} {[base]other_install_args}
    {toxinidir}/certbot-apache/certbot_apache/tests/apache-conf-files/apache-conf-test --debian-modules

[testenv:nginxroundtrip]
commands =
    pip install {[base]core_install_args} -e certbot-nginx
    python certbot-compatibility-test/nginx/roundtrip.py certbot-compatibility-test/nginx/nginx-roundtrip-testdata

# This is a duplication of the command line in testenv:le_auto to
# allow users to run the modification check by running `tox`
[testenv:modification]
commands =
    {toxinidir}/tests/modification-check.sh

[testenv:apache_compat]
commands =
    docker build -t certbot-compatibility-test -f certbot-compatibility-test/Dockerfile .
    docker build -t apache-compat -f certbot-compatibility-test/Dockerfile-apache .
    docker run --rm -it apache-compat -c apache.tar.gz -vvvv
whitelist_externals =
    docker
passenv = DOCKER_*

[testenv:nginx_compat]
{'fraction_non_alphanumeric': 0.1114166168559474, 'fraction_numerical': 0.027973699940227137, 'mean_word_length': 4.404392764857882, 'pattern_counts': {'":': 0, '<': 11, '<?xml version=': 0, '>': 5, 'https://': 6, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6353400', 'n_tokens_mistral': 3068, 'n_tokens_neox': 2893, 'n_words': 696}