Welcome to mirror list, hosted at ThFree Co, Russian Federation.

tox.ini - github.com/certbot/certbot.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 8279a687f7f953a02d68c96f66cdc3286e2737e5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
# 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]
# wraps pip install to use pinned versions of dependencies
pip_install = {toxinidir}/tools/pip_install.sh
# packages installed separately to ensure that downstream deps problems
# are detected, c.f. #1002
core_commands =
    {[base]pip_install} -e acme[dev]
    nosetests -v acme --processes=-1
    {[base]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 =
    {[base]pip_install} -e certbot-apache
    nosetests -v certbot_apache --processes=-1 --process-timeout=80
    {[base]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

dns_plugin_commands =
    pip install -e certbot-dns-cloudflare
    nosetests -v certbot_dns_cloudflare --processes=-1
    pip install -e certbot-dns-digitalocean
    nosetests -v certbot_dns_digitalocean --processes=-1
    pip install -e certbot-dns-google
    nosetests -v certbot_dns_google --processes=-1
    pip install -e certbot-dns-route53
    nosetests -v certbot_dns_route53 --processes=-1 --process-timeout=25
dns_plugin_install_args = -e certbot-dns-cloudflare -e certbot-dns-digitalocean -e certbot-dns-google -e certbot-dns-route53
dns_plugin_paths = certbot-dns-cloudflare/certbot_dns_cloudflare certbot-dns-digitalocean/certbot_dns_digitalocean certbot-dns-google/certbot_dns_google certbot-dns-route53/certbot_dns_route53

lexicon_dns_plugin_commands =
    pip install -e certbot-dns-cloudxns
    nosetests -v certbot_dns_cloudxns --processes=-1
    pip install -e certbot-dns-dnsimple
    nosetests -v certbot_dns_dnsimple --processes=-1
    pip install -e certbot-dns-nsone
    nosetests -v certbot_dns_nsone --processes=-1
lexicon_dns_plugin_install_args = -e certbot-dns-cloudxns -e certbot-dns-dnsimple -e certbot-dns-nsone
lexicon_dns_plugin_paths = certbot-dns-cloudxns/certbot_dns_cloudxns certbot-dns-dnsimple/certbot_dns_dnsimple certbot-dns-nsone/certbot_dns_nsone

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

other_commands =
    {[base]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]dns_plugin_commands}
    {[base]lexicon_dns_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==1.2
    py{26,27}-oldest: configargparse==0.10.0
    py{26,27}-oldest: PyOpenSSL==0.13
    py{26,27}-oldest: requests<=2.11.1

[testenv:py26]
commands =
    {[base]core_commands}
    {[base]plugin_commands}
    {[base]dns_plugin_commands}
    {[base]other_commands}

[testenv:py26-oldest]
commands =
    {[testenv:py26]commands}

[testenv:py27_install]
basepython = python2.7
commands =
    {[base]pip_install} {[base]core_install_args} {[base]plugin_install_args} {[base]dns_plugin_install_args} {[base]lexicon_dns_plugin_install_args} {[base]other_install_args}

[testenv:cover]
basepython = python2.7
commands =
    {[base]pip_install} {[base]core_install_args} {[base]plugin_install_args} {[base]dns_plugin_install_args} {[base]lexicon_dns_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 =
    {[base]pip_install} -q {[base]core_install_args} {[base]plugin_install_args} {[base]dns_plugin_install_args} {[base]lexicon_dns_plugin_install_args} {[base]compatibility_install_args} {[base]other_install_args}
    pylint --reports=n --rcfile=.pylintrc {[base]core_paths} {[base]plugin_paths} {[base]dns_plugin_paths} {[base]lexicon_dns_plugin_paths} {[base]compatibility_paths} {[base]other_paths}

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

[testenv:apacheconftest]
#basepython = python2.7
commands =
    {[base]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 =
    {[base]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]
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 -it nginx-compat -c nginx.tar.gz -vvvv
whitelist_externals =
    docker
passenv = DOCKER_*

[testenv:le_auto_precise]
# At the moment, this tests under Python 2.7 only, as only that version is
# readily available on the Precise Docker image.
commands =
    docker build -f letsencrypt-auto-source/Dockerfile.precise -t lea letsencrypt-auto-source
    docker run --rm -t -i lea
whitelist_externals =
    docker
passenv = DOCKER_*

[testenv:le_auto_trusty]
# At the moment, this tests under Python 2.7 only, as only that version is
# readily available on the Trusty Docker image.
commands =
    {toxinidir}/tests/modification-check.sh
    docker build -f letsencrypt-auto-source/Dockerfile.trusty -t lea letsencrypt-auto-source
    docker run --rm -t -i lea
whitelist_externals =
    docker
passenv =
    DOCKER_*
    TRAVIS_BRANCH

[testenv:le_auto_wheezy]
# At the moment, this tests under Python 2.7 only, as only that version is
# readily available on the Wheezy Docker image.
commands =
    docker build -f letsencrypt-auto-source/Dockerfile.wheezy -t lea letsencrypt-auto-source
    docker run --rm -t -i lea
whitelist_externals =
    docker
passenv = DOCKER_*

[testenv:le_auto_centos6]
# At the moment, this tests under Python 2.6 only, as only that version is
# readily available on the CentOS 6 Docker image.
commands =
    docker build -f letsencrypt-auto-source/Dockerfile.centos6 -t lea letsencrypt-auto-source
    docker run --rm -t -i lea
whitelist_externals =
    docker
passenv = DOCKER_*

[testenv:docker_dev]
# tests the Dockerfile-dev file to ensure development with it works
# as expected
commands =
    docker-compose run --rm --service-ports development bash -c 'tox -e lint'
whitelist_externals =
    docker
passenv = DOCKER_*