Pebble 2.5.1 supports OCSP stapling, so we can finally replace all boulder tests/harnesses with the much simpler pebble setup. Closes #9898 * Remove unused `--acme-server` argument Since this argument is never set and always defaults to 'pebble', just remove it to simplify assumptions about which test server's being used. * Remove boulder option from integration tests Now that pebble supports all of our test cases, we can move off of the much more complicated boulder test harness. * pebble_artifacts: bump to latest pebble release * pebble_artifacts: fix download path * certbot-ci: unzip pebble assets * CI: rip out windows tests/jobs * tox.ini: rm outdated Windows comment Co-authored-by: Brad Warren <bmw@users.noreply.github.com> * ci: rm redundant integration test Co-authored-by: Brad Warren <bmw@users.noreply.github.com> * acme_server: raise error if proxy and http-01 port are both set * acme_server: rm vestigial preterimate commands stuff --------- Co-authored-by: Brad Warren <bmw@users.noreply.github.com>
302 lines
11 KiB
INI
302 lines
11 KiB
INI
[tox]
|
|
envlist = {cover,lint}-posix,mypy
|
|
|
|
skipsdist = true
|
|
|
|
[base]
|
|
pytest = python -m pytest {posargs}
|
|
# Paths are listed on one line because tox seems to have inconsistent
|
|
# behavior with substitutions that contain line continuations, see
|
|
# https://github.com/tox-dev/tox/issues/2069 for more info.
|
|
source_paths = acme/acme certbot/certbot certbot-apache/certbot_apache certbot-ci/certbot_integration_tests certbot-ci/snap_integration_tests certbot-compatibility-test/certbot_compatibility_test certbot-dns-cloudflare/certbot_dns_cloudflare certbot-dns-digitalocean/certbot_dns_digitalocean certbot-dns-dnsimple/certbot_dns_dnsimple certbot-dns-dnsmadeeasy/certbot_dns_dnsmadeeasy certbot-dns-gehirn/certbot_dns_gehirn certbot-dns-google/certbot_dns_google certbot-dns-linode/certbot_dns_linode certbot-dns-luadns/certbot_dns_luadns certbot-dns-nsone/certbot_dns_nsone certbot-dns-ovh/certbot_dns_ovh certbot-dns-rfc2136/certbot_dns_rfc2136 certbot-dns-route53/certbot_dns_route53 certbot-dns-sakuracloud/certbot_dns_sakuracloud certbot-nginx/certbot_nginx
|
|
|
|
[testenv]
|
|
platform =
|
|
posix: ^(?!.*win32).*$
|
|
setenv =
|
|
PYTEST_ADDOPTS = {env:PYTEST_ADDOPTS:--numprocesses auto}
|
|
PYTHONHASHSEED = 0
|
|
# The default install command is python -I -m pip install {opts} {packages}
|
|
install_command = python -I {toxinidir}/tools/pip_install.py {opts} {packages}
|
|
deps =
|
|
-e acme[test]
|
|
-e certbot
|
|
-e certbot[test]
|
|
-e certbot-apache[dev]
|
|
-e certbot-dns-cloudflare
|
|
-e certbot-dns-digitalocean
|
|
-e certbot-dns-dnsimple
|
|
-e certbot-dns-dnsmadeeasy
|
|
-e certbot-dns-gehirn
|
|
-e certbot-dns-google
|
|
-e certbot-dns-linode
|
|
-e certbot-dns-luadns
|
|
-e certbot-dns-nsone
|
|
-e certbot-dns-ovh
|
|
-e certbot-dns-rfc2136
|
|
-e certbot-dns-route53
|
|
-e certbot-dns-sakuracloud
|
|
-e certbot-nginx
|
|
allowlist_externals =
|
|
echo
|
|
false
|
|
# This and the next few testenvs are a workaround for
|
|
# https://github.com/tox-dev/tox/issues/2858.
|
|
commands =
|
|
echo "Unrecognized environment name {envname}"
|
|
false
|
|
|
|
[testenv:py{,-posix}]
|
|
commands =
|
|
{[base]pytest} acme certbot certbot-dns-cloudflare certbot-dns-digitalocean certbot-dns-dnsimple certbot-dns-dnsmadeeasy certbot-dns-gehirn certbot-dns-google certbot-dns-linode certbot-dns-luadns certbot-dns-nsone certbot-dns-ovh certbot-dns-rfc2136 certbot-dns-route53 certbot-dns-sakuracloud certbot-nginx certbot-apache
|
|
|
|
[testenv:py3{,8,9,10,11,12}]
|
|
commands = {[testenv:py]commands}
|
|
|
|
[testenv:py3.{8,9,10,11,12}]
|
|
commands = {[testenv:py]commands}
|
|
|
|
[testenv:oldest]
|
|
# Setting basepython allows the tests to fail fast if that version of Python
|
|
# isn't available instead of potentially trying to use a newer version of
|
|
# Python which is unlikely to work.
|
|
#
|
|
# This version should be kept in sync with the one declared in
|
|
# tools/pinning/oldest/pyproject.toml.
|
|
basepython = python3.8
|
|
setenv = CERTBOT_OLDEST=1
|
|
commands = {[testenv:py]commands}
|
|
|
|
[testenv:cover]
|
|
coverage_report = python -m coverage report
|
|
common_coverage_report_commands =
|
|
{[testenv:cover]coverage_report} --fail-under 99 --include certbot-dns-cloudflare/*
|
|
{[testenv:cover]coverage_report} --fail-under 99 --include certbot-dns-digitalocean/*
|
|
{[testenv:cover]coverage_report} --fail-under 99 --include certbot-dns-dnsimple/*
|
|
{[testenv:cover]coverage_report} --fail-under 99 --include certbot-dns-dnsmadeeasy/*
|
|
{[testenv:cover]coverage_report} --fail-under 99 --include certbot-dns-gehirn/*
|
|
{[testenv:cover]coverage_report} --fail-under 99 --include certbot-dns-google/*
|
|
{[testenv:cover]coverage_report} --fail-under 100 --include certbot-dns-linode/*
|
|
{[testenv:cover]coverage_report} --fail-under 99 --include certbot-dns-luadns/*
|
|
{[testenv:cover]coverage_report} --fail-under 99 --include certbot-dns-nsone/*
|
|
{[testenv:cover]coverage_report} --fail-under 98 --include certbot-dns-ovh/*
|
|
{[testenv:cover]coverage_report} --fail-under 99 --include certbot-dns-rfc2136/*
|
|
{[testenv:cover]coverage_report} --fail-under 94 --include certbot-dns-route53/*
|
|
{[testenv:cover]coverage_report} --fail-under 99 --include certbot-dns-sakuracloud/*
|
|
{[testenv:cover]coverage_report} --fail-under 98 --include certbot-nginx/*
|
|
commands =
|
|
{[testenv:py]commands} --cov --cov-report=
|
|
{[testenv:cover]coverage_report} --fail-under 100 --include acme/*
|
|
{[testenv:cover]coverage_report} --fail-under 95 --include certbot/*
|
|
{[testenv:cover]coverage_report} --fail-under 100 --include certbot-apache/*
|
|
{[testenv:cover]common_coverage_report_commands}
|
|
|
|
# Another workaround for https://github.com/tox-dev/tox/issues/2858 in tox v4.
|
|
[testenv:cover-posix]
|
|
commands = {[testenv:cover]commands}
|
|
|
|
[testenv:lint{,-posix}]
|
|
commands = python -m pylint --reports=n --rcfile=.pylintrc {[base]source_paths}
|
|
|
|
[testenv:mypy]
|
|
deps =
|
|
{[testenv]deps}
|
|
-e certbot-ci
|
|
commands = mypy {[base]source_paths}
|
|
|
|
[testenv:isolated-acme]
|
|
description = Tests acme without any Certbot components installed
|
|
deps = -e acme[test]
|
|
commands = {[base]pytest} acme
|
|
|
|
[testenv:isolated-certbot]
|
|
description = Tests Certbot without any additional plugins installed
|
|
deps =
|
|
{[testenv:isolated-acme]deps}
|
|
-e certbot[test]
|
|
commands = {[base]pytest} certbot
|
|
|
|
[testenv:isolated-{apache,cloudflare,digitalocean,dnsimple,dnsmadeeasy,gehirn,google,linode,luadns,nsone,ovh,rfc2136,route53,sakuracloud,nginx}]
|
|
description = Tests the plugin without installing any other plugins
|
|
deps =
|
|
{[testenv:isolated-certbot]deps}
|
|
apache: -e certbot-apache[dev]
|
|
cloudflare: -e certbot-dns-cloudflare
|
|
digitalocean: -e certbot-dns-digitalocean
|
|
dnsimple: -e certbot-dns-dnsimple
|
|
dnsmadeeasy: -e certbot-dns-dnsmadeeasy
|
|
gehirn: -e certbot-dns-gehirn
|
|
google: -e certbot-dns-google
|
|
linode: -e certbot-dns-linode
|
|
luadns: -e certbot-dns-luadns
|
|
nsone: -e certbot-dns-nsone
|
|
ovh: -e certbot-dns-ovh
|
|
rfc2136: -e certbot-dns-rfc2136
|
|
route53: -e certbot-dns-route53
|
|
sakuracloud: -e certbot-dns-sakuracloud
|
|
nginx: -e certbot-nginx
|
|
commands =
|
|
apache: {[base]pytest} certbot-apache
|
|
cloudflare: {[base]pytest} certbot-dns-cloudflare
|
|
digitalocean: {[base]pytest} certbot-dns-digitalocean
|
|
dnsimple: {[base]pytest} certbot-dns-dnsimple
|
|
dnsmadeeasy: {[base]pytest} certbot-dns-dnsmadeeasy
|
|
gehirn: {[base]pytest} certbot-dns-gehirn
|
|
google: {[base]pytest} certbot-dns-google
|
|
linode: {[base]pytest} certbot-dns-linode
|
|
luadns: {[base]pytest} certbot-dns-luadns
|
|
nsone: {[base]pytest} certbot-dns-nsone
|
|
ovh: {[base]pytest} certbot-dns-ovh
|
|
rfc2136: {[base]pytest} certbot-dns-rfc2136
|
|
route53: {[base]pytest} certbot-dns-route53
|
|
sakuracloud: {[base]pytest} certbot-dns-sakuracloud
|
|
nginx: {[base]pytest} certbot-nginx
|
|
|
|
[testenv:apacheconftest]
|
|
deps =
|
|
-e acme
|
|
-e certbot
|
|
-e certbot-apache
|
|
commands =
|
|
{toxinidir}/certbot-apache/certbot_apache/_internal/tests/apache-conf-files/apache-conf-test --debian-modules
|
|
passenv =
|
|
SERVER
|
|
allowlist_externals =
|
|
{toxinidir}/certbot-apache/certbot_apache/_internal/tests/apache-conf-files/apache-conf-test
|
|
|
|
[testenv:apacheconftest-external-with-pebble]
|
|
description = Run apacheconftest with pebble and Certbot outside of the tox virtual environment.
|
|
deps =
|
|
-e certbot-ci
|
|
allowlist_externals =
|
|
{toxinidir}/certbot-apache/certbot_apache/_internal/tests/apache-conf-files/apache-conf-test-pebble.py
|
|
commands =
|
|
{toxinidir}/certbot-apache/certbot_apache/_internal/tests/apache-conf-files/apache-conf-test-pebble.py --debian-modules
|
|
|
|
[testenv:apacheconftest-with-pebble]
|
|
deps =
|
|
{[testenv:apacheconftest]deps}
|
|
{[testenv:apacheconftest-external-with-pebble]deps}
|
|
allowlist_externals =
|
|
{toxinidir}/certbot-apache/certbot_apache/_internal/tests/apache-conf-files/apache-conf-test-pebble.py
|
|
commands = {[testenv:apacheconftest-external-with-pebble]commands}
|
|
|
|
[testenv:nginxroundtrip]
|
|
deps =
|
|
-e acme
|
|
-e certbot
|
|
-e certbot-apache
|
|
-e certbot-nginx
|
|
commands =
|
|
python certbot-compatibility-test/nginx/roundtrip.py certbot-compatibility-test/nginx/nginx-roundtrip-testdata
|
|
|
|
[testenv:modification]
|
|
deps =
|
|
commands =
|
|
python {toxinidir}/tests/modification-check.py
|
|
|
|
[testenv:apache_compat]
|
|
deps =
|
|
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 -t apache-compat -c apache.tar.gz -vvvv
|
|
allowlist_externals =
|
|
docker
|
|
passenv =
|
|
DOCKER_*
|
|
|
|
[testenv:nginx_compat]
|
|
deps =
|
|
commands =
|
|
docker build -t certbot-compatibility-test -f certbot-compatibility-test/Dockerfile .
|
|
docker build -t nginx-compat -f certbot-compatibility-test/Dockerfile-nginx .
|
|
docker run --rm -t nginx-compat -c nginx.tar.gz -vv -aie
|
|
allowlist_externals =
|
|
docker
|
|
passenv =
|
|
DOCKER_*
|
|
|
|
[testenv:integration]
|
|
deps =
|
|
-e acme
|
|
-e certbot
|
|
-e certbot-nginx
|
|
-e certbot-ci
|
|
commands =
|
|
{[base]pytest} certbot-ci/certbot_integration_tests \
|
|
--cov=acme --cov=certbot --cov=certbot_nginx --cov-report= \
|
|
--cov-config=certbot-ci/certbot_integration_tests/.coveragerc
|
|
coverage report --include 'certbot/*' --show-missing --fail-under=65
|
|
coverage report --include 'certbot-nginx/*' --show-missing --fail-under=74
|
|
passenv = DOCKER_*
|
|
|
|
[testenv:integration-certbot]
|
|
deps =
|
|
-e acme
|
|
-e certbot
|
|
-e certbot-ci
|
|
commands =
|
|
{[base]pytest} certbot-ci/certbot_integration_tests/certbot_tests \
|
|
--cov=acme --cov=certbot --cov-report= \
|
|
--cov-config=certbot-ci/certbot_integration_tests/.coveragerc
|
|
coverage report --include 'certbot/*' --show-missing --fail-under=62
|
|
|
|
[testenv:integration-dns-rfc2136]
|
|
deps =
|
|
-e acme
|
|
-e certbot
|
|
-e certbot-dns-rfc2136
|
|
-e certbot-ci
|
|
commands =
|
|
{[base]pytest} certbot-ci/certbot_integration_tests/rfc2136_tests \
|
|
--dns-server=bind \
|
|
--numprocesses=1 \
|
|
--cov=acme --cov=certbot --cov=certbot_dns_rfc2136 --cov-report= \
|
|
--cov-config=certbot-ci/certbot_integration_tests/.coveragerc
|
|
coverage report --include 'certbot/*' --show-missing --fail-under=45
|
|
coverage report --include 'certbot-dns-rfc2136/*' --show-missing --fail-under=86
|
|
|
|
[testenv:integration-external]
|
|
description = Run integration tests with Certbot outside of the tox virtual environment.
|
|
deps =
|
|
-e certbot-ci
|
|
commands =
|
|
{[base]pytest} certbot-ci/certbot_integration_tests
|
|
passenv = DOCKER_*
|
|
|
|
[testenv:integration-certbot-oldest]
|
|
deps =
|
|
-e acme
|
|
-e certbot
|
|
-e certbot-ci
|
|
basepython =
|
|
{[testenv:oldest]basepython}
|
|
commands =
|
|
{[base]pytest} certbot-ci/certbot_integration_tests/certbot_tests
|
|
passenv = DOCKER_*
|
|
setenv = {[testenv:oldest]setenv}
|
|
|
|
[testenv:integration-nginx-oldest]
|
|
deps =
|
|
-e acme
|
|
-e certbot
|
|
-e certbot-nginx
|
|
-e certbot-ci
|
|
basepython =
|
|
{[testenv:oldest]basepython}
|
|
commands =
|
|
{[base]pytest} certbot-ci/certbot_integration_tests/nginx_tests
|
|
passenv = DOCKER_*
|
|
setenv = {[testenv:oldest]setenv}
|
|
|
|
[testenv:test-farm-apache2]
|
|
passenv =
|
|
AWS_*
|
|
setenv = AWS_DEFAULT_REGION=us-east-1
|
|
changedir = letstest
|
|
deps = -e {toxinidir}/letstest
|
|
commands = {toxinidir}/tools/retry.sh letstest targets/targets.yaml {env:AWS_EC2_PEM_FILE} SET_BY_ENV scripts/test_apache2.sh --repo {toxinidir}
|
|
allowlist_externals =
|
|
{toxinidir}/tools/retry.sh
|