Skip to content

Commit 00a9695

Browse files
authored
Add PROGRAM environment variables on Windows (#2383)
1 parent eb1bd33 commit 00a9695

File tree

5 files changed

+14
-1
lines changed

5 files changed

+14
-1
lines changed

CONTRIBUTORS

+1
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ Isaac Pedisich
5555
Itxaka Serrano
5656
Jake Windle
5757
Jannis Leidel
58+
Jason R. Coombs
5859
Jesse Schwartzentruber
5960
Joachim Brandon LeBlanc
6061
Johannes Christ

docs/changelog/2382.feature.rst

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
On Windows ``PROGRAMFILES``, ``PROGRAMFILES(X86)``, and ``PROGRAMDATA`` environment variables are now passed through, unmasking system values necessary to locate resources such as a C compiler.

docs/config.rst

+2-1
Original file line numberDiff line numberDiff line change
@@ -469,7 +469,8 @@ Complete list of settings that you can put into ``testenv*`` sections:
469469
``REQUESTS_CA_BUNDLE``, ``SSL_CERT_FILE``,
470470
``HTTP_PROXY``, ``HTTPS_PROXY``, ``NO_PROXY``
471471
* Windows: ``SYSTEMDRIVE``, ``SYSTEMROOT``, ``PATHEXT``, ``TEMP``, ``TMP``
472-
``NUMBER_OF_PROCESSORS``, ``USERPROFILE``, ``MSYSTEM``
472+
``NUMBER_OF_PROCESSORS``, ``USERPROFILE``, ``MSYSTEM``,
473+
``PROGRAMFILES``, ``PROGRAMFILES(X86)``, ``PROGRAMDATA``
473474
* Others (e.g. UNIX, macOS): ``TMPDIR``
474475

475476
You can override these variables with the ``setenv`` option.

src/tox/config/__init__.py

+4
Original file line numberDiff line numberDiff line change
@@ -807,6 +807,10 @@ def passenv(testenv_config, value):
807807
passenv.add("PROCESSOR_ARCHITECTURE") # platform.machine()
808808
passenv.add("USERPROFILE") # needed for `os.path.expanduser()`
809809
passenv.add("MSYSTEM") # fixes #429
810+
# PROGRAM* required for compiler tool discovery #2382
811+
passenv.add("PROGRAMFILES")
812+
passenv.add("PROGRAMFILES(X86)")
813+
passenv.add("PROGRAMDATA")
810814
else:
811815
passenv.add("TMPDIR")
812816

tests/unit/config/test_config.py

+6
Original file line numberDiff line numberDiff line change
@@ -1518,6 +1518,9 @@ def test_passenv_as_multiline_list(self, newconfig, monkeypatch, plat):
15181518
assert "PROCESSOR_ARCHITECTURE" in envconfig.passenv
15191519
assert "USERPROFILE" in envconfig.passenv
15201520
assert "MSYSTEM" in envconfig.passenv
1521+
assert "PROGRAMFILES" in envconfig.passenv
1522+
assert "PROGRAMFILES(X86)" in envconfig.passenv
1523+
assert "PROGRAMDATA" in envconfig.passenv
15211524
else:
15221525
assert "TMPDIR" in envconfig.passenv
15231526
if sys.platform != "win32":
@@ -1562,6 +1565,9 @@ def test_passenv_as_space_separated_list(self, newconfig, monkeypatch, plat):
15621565
assert "SYSTEMROOT" in envconfig.passenv
15631566
assert "TEMP" in envconfig.passenv
15641567
assert "TMP" in envconfig.passenv
1568+
assert "PROGRAMFILES" in envconfig.passenv
1569+
assert "PROGRAMFILES(X86)" in envconfig.passenv
1570+
assert "PROGRAMDATA" in envconfig.passenv
15651571
else:
15661572
assert "TMPDIR" in envconfig.passenv
15671573
assert "PATH" in envconfig.passenv

0 commit comments

Comments
 (0)