Skip to content

Commit

Permalink
Adds SSL proxy variables to default passenv (#1439)
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 authored and gaborbernat committed Nov 11, 2019
1 parent 5582194 commit 6feee0b
Show file tree
Hide file tree
Showing 6 changed files with 22 additions and 5 deletions.
1 change: 1 addition & 0 deletions CONTRIBUTORS
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ Pierre-Luc Tessier Gagné
Ronald Evers
Ronny Pfannschmidt
Selim Belhaouane
Sorin Sbarnea
Sridhar Ratnakumar
Stephen Finucane
Sviatoslav Sydorenko
Expand Down
1 change: 1 addition & 0 deletions docs/changelog/1437.bugfix.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
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 @@ -664,11 +664,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_PUBLIC),
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 @@ -1069,8 +1069,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 6feee0b

Please sign in to comment.