Skip to content

Commit

Permalink
Adds SSL proxy variables to default passenv
Browse files Browse the repository at this point in the history
This shouls avoid SSL failures with HTTP requests from pip, requests
or other libraries.

Also sorts existing values in order to make it easier to update the
list in the future.

Fixes: #1437
  • Loading branch information
ssbarnea committed Oct 16, 2019
1 parent 1883946 commit 749ba16
Show file tree
Hide file tree
Showing 6 changed files with 23 additions and 5 deletions.
1 change: 1 addition & 0 deletions CONTRIBUTORS
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ Pierre-Luc Tessier Gagné
Ronald Evers
Ronny Pfannschmidt
Selim Belhaouane
Sorin Sbarnea
Sridhar Ratnakumar
Stephen Finucane
Sviatoslav Sydorenko
Expand Down
2 changes: 2 additions & 0 deletions docs/changelog/1437.bugfix.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Adds CURL_CA_BUNDLE, REQUESTS_CA_BUNDLE, SSL_CERT_FILE to the default
passenv values. — by :user:`ssbarnea`
6 changes: 4 additions & 2 deletions docs/config.rst
Original file line number Diff line number Diff line change
Expand Up @@ -385,8 +385,10 @@ Complete list of settings that you can put into ``testenv*`` sections:
Some variables are always passed through to ensure the basic functionality
of standard library functions or tooling like pip:

* passed through on all platforms: ``PATH``, ``LANG``, ``LANGUAGE``,
``LD_LIBRARY_PATH``, ``PIP_INDEX_URL``
* passed through on all platforms: ``CURL_CA_BUNDLE`, ``PATH``,
``LANG``, ``LANGUAGE``,
``LD_LIBRARY_PATH``, ``PIP_INDEX_URL``,
``REQUESTS_CA_BUNDLE``, ``SSL_CERT_FILE``
* Windows: ``SYSTEMDRIVE``, ``SYSTEMROOT``, ``PATHEXT``, ``TEMP``, ``TMP``
``NUMBER_OF_PROCESSORS``, ``USERPROFILE``, ``MSYSTEM``
* Others (e.g. UNIX, macOS): ``TMPDIR``
Expand Down
7 changes: 5 additions & 2 deletions src/tox/config/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -663,11 +663,14 @@ def passenv(testenv_config, value):
value = list(itertools.chain.from_iterable([x.split(" ") for x in value]))

passenv = {
"PATH",
"PIP_INDEX_URL",
"CURL_CA_BUNDLE",
"LANG",
"LANGUAGE",
"LD_LIBRARY_PATH",
"PATH",
"PIP_INDEX_URL",
"REQUESTS_CA_BUNDLE",
"SSL_CERT_FILE",
"TOX_WORK_DIR",
str(REPORTER_TIMESTAMP_ON_ENV),
str(PARALLEL_ENV_VAR_KEY),
Expand Down
3 changes: 3 additions & 0 deletions tests/unit/config/test_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -1068,8 +1068,11 @@ def test_passenv_as_multiline_list(self, newconfig, monkeypatch, plat):
assert "MSYSTEM" in envconfig.passenv
else:
assert "TMPDIR" in envconfig.passenv
assert "CURL_CA_BUNDLE" in envconfig.passenv
assert "PATH" in envconfig.passenv
assert "PIP_INDEX_URL" in envconfig.passenv
assert "REQUESTS_CA_BUNDLE" in envconfig.passenv
assert "SSL_CERT_FILE" in envconfig.passenv
assert "LANG" in envconfig.passenv
assert "LANGUAGE" in envconfig.passenv
assert "LD_LIBRARY_PATH" in envconfig.passenv
Expand Down
9 changes: 8 additions & 1 deletion tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,14 @@ description = run the tests with pytest under {basepython}
setenv = PIP_DISABLE_VERSION_CHECK = 1
COVERAGE_FILE = {env:COVERAGE_FILE:{toxworkdir}/.coverage.{envname}}
VIRTUALENV_NO_DOWNLOAD = 1
passenv = http_proxy https_proxy no_proxy SSL_CERT_FILE PYTEST_*
passenv =
CURL_CA_BUNDLE
http_proxy
https_proxy
no_proxy
REQUESTS_CA_BUNDLE
SSL_CERT_FILE
PYTEST_*
deps = pip == 19.1.1
extras = testing
commands = pytest \
Expand Down

0 comments on commit 749ba16

Please sign in to comment.