diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index f3fc3407..15f58597 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -55,6 +55,7 @@ Isaac Pedisich
 Itxaka Serrano
 Jake Windle
 Jannis Leidel
+Jason R. Coombs
 Jesse Schwartzentruber
 Joachim Brandon LeBlanc
 Johannes Christ
diff --git a/docs/changelog/2382.feature.rst b/docs/changelog/2382.feature.rst
new file mode 100644
index 00000000..59a75852
--- /dev/null
+++ b/docs/changelog/2382.feature.rst
@@ -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.
diff --git a/docs/config.rst b/docs/config.rst
index c579733e..2ca82e3a 100644
--- a/docs/config.rst
+++ b/docs/config.rst
@@ -469,7 +469,8 @@ Complete list of settings that you can put into ``testenv*`` sections:
       ``REQUESTS_CA_BUNDLE``, ``SSL_CERT_FILE``,
       ``HTTP_PROXY``, ``HTTPS_PROXY``, ``NO_PROXY``
     * Windows: ``SYSTEMDRIVE``, ``SYSTEMROOT``, ``PATHEXT``, ``TEMP``, ``TMP``
-       ``NUMBER_OF_PROCESSORS``, ``USERPROFILE``, ``MSYSTEM``
+       ``NUMBER_OF_PROCESSORS``, ``USERPROFILE``, ``MSYSTEM``,
+       ``PROGRAMFILES``, ``PROGRAMFILES(X86)``, ``PROGRAMDATA``
     * Others (e.g. UNIX, macOS): ``TMPDIR``
 
     You can override these variables with the ``setenv`` option.
diff --git a/src/tox/config/__init__.py b/src/tox/config/__init__.py
index b155fd1c..b49c06f6 100644
--- a/src/tox/config/__init__.py
+++ b/src/tox/config/__init__.py
@@ -807,6 +807,10 @@ def tox_addoption(parser):
             passenv.add("PROCESSOR_ARCHITECTURE")  # platform.machine()
             passenv.add("USERPROFILE")  # needed for `os.path.expanduser()`
             passenv.add("MSYSTEM")  # fixes #429
+            # PROGRAM* required for compiler tool discovery #2382
+            passenv.add("PROGRAMFILES")
+            passenv.add("PROGRAMFILES(X86)")
+            passenv.add("PROGRAMDATA")
         else:
             passenv.add("TMPDIR")
 

diff --git a/tests/unit/config/test_config.py b/tests/unit/config/test_config.py
index 6949bf93..3408de02 100644
--- a/tests/unit/config/test_config.py
+++ b/tests/unit/config/test_config.py
@@ -1518,6 +1518,9 @@ class TestConfigTestEnv:
             assert "PROCESSOR_ARCHITECTURE" in envconfig.passenv
             assert "USERPROFILE" in envconfig.passenv
             assert "MSYSTEM" in envconfig.passenv
+            assert "PROGRAMFILES" in envconfig.passenv
+            assert "PROGRAMFILES(X86)" in envconfig.passenv
+            assert "PROGRAMDATA" in envconfig.passenv
         else:
             assert "TMPDIR" in envconfig.passenv
             if sys.platform != "win32":
@@ -1562,6 +1565,9 @@ class TestConfigTestEnv:
             assert "SYSTEMROOT" in envconfig.passenv
             assert "TEMP" in envconfig.passenv
             assert "TMP" in envconfig.passenv
+            assert "PROGRAMFILES" in envconfig.passenv
+            assert "PROGRAMFILES(X86)" in envconfig.passenv
+            assert "PROGRAMDATA" in envconfig.passenv
         else:
             assert "TMPDIR" in envconfig.passenv
         assert "PATH" in envconfig.passenv

Pass through ProgramFiles* and ProgramData by default
I'd like to follow up on #1673. I couldn't comment or even +1 that issue.

I believe the characterization of the issue as setuptools-specific was incorrect.

Although the issue does affect Setuptools and not Flit, that's only because Setuptools supports building C extensions on Windows.

The issue can't be fixed in Setuptools. By the time tox has masked the ProgramFiles env var, Setuptools has little hope of recovering that setting.

We're not asking tox to patch Setuptools. Instead, we're asking tox to consider honoring the system's intrinsic environment configuration by passing through system-level variables, variables that would be unlikely to be configured by the user and which are necessary for basic operation on the platform (similar to `PATH`, `SYSTEMDRIVE`, and `SYSTEMROOT`).

Failing to support this model will instead require every project that builds extension modules on Windows to bypass this setting in their tox config. I believe this issue was largely missed until recently because most users were still testing on older platforms/compilers that did not rely on vswhere for discovery, but now that Windows 2022 is the default in Github, it's affecting a wide array of users. I contend:

- this exemption is required in every case it affects
- there is no known case that this masking is currently important
- the number of affected projects is large.

I can put together a repro that doesn't involve Setuptools if that helps persuade.
tests/unit/config/test_config.py::TestConfigTestEnv::test_passenv_as_multiline_list[win32] tests/unit/config/test_config.py::TestConfigTestEnv::test_passenv_as_space_separated_list[win32]
tests/unit/config/test_config.py::TestIniParserPrefix::test_other_section_substitution tests/unit/config/test_config.py::TestIniParserPrefix::test_fallback_sections tests/unit/config/test_config.py::TestIniParserPrefix::test_basic_section_access tests/unit/config/test_config.py::TestIniParserPrefix::test_value_matches_prefixed_section_substitution tests/unit/config/test_config.py::TestIniParserPrefix::test_value_doesn_match_prefixed_section_substitution tests/unit/config/test_config.py::TestGlobalOptions::test_quiet[args2-2] tests/unit/config/test_config.py::TestGlobalOptions::test_skip_missing_interpreters_cli_no_arg tests/unit/config/test_config.py::TestGlobalOptions::test_sdist_specification tests/unit/config/test_config.py::TestGlobalOptions::test_env_selection_with_section_name tests/unit/config/test_config.py::TestGlobalOptions::test_skip_missing_interpreters_true tests/unit/config/test_config.py::TestGlobalOptions::test_verbosity[args0-0] tests/unit/config/test_config.py::TestGlobalOptions::test_substitution_jenkins_default tests/unit/config/test_config.py::TestGlobalOptions::test_quiet[args4-3] tests/unit/config/test_config.py::TestGlobalOptions::test_substitution_jenkins_context tests/unit/config/test_config.py::TestGlobalOptions::test_skip_missing_interpreters_cli_not_specified tests/unit/config/test_config.py::TestGlobalOptions::test_correct_basepython_chosen_from_default_factors tests/unit/config/test_config.py::TestGlobalOptions::test_skip_missing_interpreters_cli_overrides_true tests/unit/config/test_config.py::TestGlobalOptions::test_quiet[args0-0] tests/unit/config/test_config.py::TestGlobalOptions::test_defaultenv_partial_override tests/unit/config/test_config.py::TestGlobalOptions::test_skip_missing_interpreters_false tests/unit/config/test_config.py::TestGlobalOptions::test_quiet[args3-2] tests/unit/config/test_config.py::TestGlobalOptions::test_envlist_expansion tests/unit/config/test_config.py::TestGlobalOptions::test_defaultenv_commandline tests/unit/config/test_config.py::TestGlobalOptions::test_envlist_cross_product tests/unit/config/test_config.py::TestGlobalOptions::test_envlist_multiline tests/unit/config/test_config.py::TestGlobalOptions::test_py_venv tests/unit/config/test_config.py::TestGlobalOptions::test_verbosity[args2-2] tests/unit/config/test_config.py::TestGlobalOptions::test_quiet[args1-1] tests/unit/config/test_config.py::TestGlobalOptions::test_verbosity[args4-3] tests/unit/config/test_config.py::TestGlobalOptions::test_verbosity[args1-1] tests/unit/config/test_config.py::TestGlobalOptions::test_substitution_jenkins_global tests/unit/config/test_config.py::TestGlobalOptions::test_no_implicit_venv_from_cli_with_envlist tests/unit/config/test_config.py::TestGlobalOptions::test_env_selection_expanded_envlist tests/unit/config/test_config.py::TestGlobalOptions::test_notest tests/unit/config/test_config.py::TestGlobalOptions::test_verbosity[args3-2] tests/unit/config/test_config.py::TestGlobalOptions::test_skip_missing_interpreters_cli_overrides_false tests/unit/config/test_config.py::TestParseconfig::test_search_parents tests/unit/config/test_config.py::TestParseconfig::test_explicit_config_path tests/unit/config/test_config.py::TestParseconfig::test_workdir_gets_resolved tests/unit/config/test_config.py::TestGetcontextname::test_blank tests/unit/config/test_config.py::TestGetcontextname::test_jenkins tests/unit/config/test_config.py::TestGetcontextname::test_hudson_legacy tests/unit/config/test_config.py::TestIndexServer::test_multiple_homedir_relative_local_indexservers tests/unit/config/test_config.py::TestIndexServer::test_parse_indexserver tests/unit/config/test_config.py::TestIndexServer::test_indexserver tests/unit/config/test_config.py::TestConfigPlatform::test_config_parse_platform_with_factors[win] tests/unit/config/test_config.py::TestConfigPlatform::test_platform_install_command tests/unit/config/test_config.py::TestConfigPlatform::test_config_parse_platform_with_factors[lin] tests/unit/config/test_config.py::TestConfigPlatform::test_config_parse_platform_rex tests/unit/config/test_config.py::TestConfigPlatform::test_config_parse_platform tests/unit/config/test_config.py::TestConfigPlatform::test_config_parse_platform_with_factors[osx] tests/unit/config/test_config.py::test_get_homedir tests/unit/config/test_config.py::test_env_spec[-e tests/unit/config/test_config.py::test_config_setup_cfg_no_tox_section tests/unit/config/test_config.py::test_isolated_build_ignores[deps-crazy-default0] tests/unit/config/test_config.py::test_interactive tests/unit/config/test_config.py::test_config_current_py tests/unit/config/test_config.py::test_config_bad_config_type_specified tests/unit/config/test_config.py::test_config_via_pyproject_legacy tests/unit/config/test_config.py::test_overwrite_skip_install_override tests/unit/config/test_config.py::test_config_bad_pyproject_specified tests/unit/config/test_config.py::test_posargs_relative_changedir tests/unit/config/test_config.py::test_config_file_not_required_with_devenv tests/unit/config/test_config.py::test_interactive_na tests/unit/config/test_config.py::test_provision_tox_env_cannot_be_in_envlist tests/unit/config/test_config.py::test_isolated_build_env_cannot_be_in_envlist tests/unit/config/test_config.py::test_config_no_version_data_in__name tests/unit/config/test_config.py::test_isolated_build_overrides tests/unit/config/test_config.py::test_isolated_build_ignores[sitepackages-True-False] tests/unit/config/test_config.py::test_interactive_available tests/unit/config/test_config.py::TestCommandParser::test_command_parser_for_multiple_words tests/unit/config/test_config.py::TestCommandParser::test_command_with_split_line_in_subst_arguments tests/unit/config/test_config.py::TestCommandParser::test_command_parser_for_word tests/unit/config/test_config.py::TestCommandParser::test_command_parsing_for_issue_10 tests/unit/config/test_config.py::TestCommandParser::test_command_parser_for_posargs tests/unit/config/test_config.py::TestCommandParser::test_commands_with_backslash tests/unit/config/test_config.py::TestCommandParser::test_command_with_runs_of_whitespace tests/unit/config/test_config.py::TestCommandParser::test_command_parser_for_substitution_with_spaces tests/unit/config/test_config.py::TestCommandParser::test_command_parser_with_complex_word_set tests/unit/config/test_config.py::TestCmdInvocation::test_version_no_plugins tests/unit/config/test_config.py::TestCmdInvocation::test_version_with_normal_plugin tests/unit/config/test_config.py::TestCmdInvocation::test_no_tox_ini tests/unit/config/test_config.py::TestCmdInvocation::test_version_with_fileless_module tests/unit/config/test_config.py::TestCmdInvocation::test_version_simple tests/unit/config/test_config.py::TestCmdInvocation::test_help tests/unit/config/test_config.py::TestConfigPackage::test_defaults tests/unit/config/test_config.py::TestConfigPackage::test_defaults_changed_dir tests/unit/config/test_config.py::TestConfigPackage::test_defaults_distshare tests/unit/config/test_config.py::TestConfigPackage::test_project_paths tests/unit/config/test_config.py::TestIniParserAgainstCommandsKey::test_regression_issue595 tests/unit/config/test_config.py::TestIniParserAgainstCommandsKey::test_command_missing_substitution_other_section tests/unit/config/test_config.py::TestIniParserAgainstCommandsKey::test_command_missing_substitution_simple tests/unit/config/test_config.py::TestIniParserAgainstCommandsKey::test_command_substitution_from_other_section_multiline tests/unit/config/test_config.py::TestIniParserAgainstCommandsKey::test_command_section_and_posargs_substitution tests/unit/config/test_config.py::TestIniParserAgainstCommandsKey::test_command_env_substitution tests/unit/config/test_config.py::TestIniParserAgainstCommandsKey::test_command_missing_substitution_inherit tests/unit/config/test_config.py::TestIniParserAgainstCommandsKey::test_command_substitution_recursion_error_unnecessary tests/unit/config/test_config.py::TestIniParserAgainstCommandsKey::test_command_env_substitution_global tests/unit/config/test_config.py::TestIniParserAgainstCommandsKey::test_command_env_substitution_posargs tests/unit/config/test_config.py::TestIniParserAgainstCommandsKey::test_command_substitution_from_other_section tests/unit/config/test_config.py::TestIniParserAgainstCommandsKey::test_command_missing_substitution tests/unit/config/test_config.py::TestIniParserAgainstCommandsKey::test_command_env_substitution_posargs_with_spaced_colon tests/unit/config/test_config.py::TestIniParserAgainstCommandsKey::test_command_env_substitution_default_escape tests/unit/config/test_config.py::TestIniParserAgainstCommandsKey::test_command_missing_substitution_multi_env tests/unit/config/test_config.py::TestIniParserAgainstCommandsKey::test_command_substitution_from_other_section_posargs tests/unit/config/test_config.py::TestIniParserAgainstCommandsKey::test_command_env_substitution_posargs_with_colon tests/unit/config/test_config.py::TestIniParserAgainstCommandsKey::test_command_missing_substitution_setenv tests/unit/config/test_config.py::TestIniParserAgainstCommandsKey::test_command_posargs_with_colon tests/unit/config/test_config.py::TestIniParserAgainstCommandsKey::test_command_missing_substitution_complex tests/unit/config/test_config.py::TestIniParserAgainstCommandsKey::test_command_substitution_recursion_error_other_section tests/unit/config/test_config.py::TestIniParserAgainstCommandsKey::test_command_substitution_recursion_error_same_section tests/unit/config/test_config.py::TestIniParser::test_argvlist_windows_escaping tests/unit/config/test_config.py::TestIniParser::test_argvlist_quoted_posargs tests/unit/config/test_config.py::TestIniParser::test_substitution_empty tests/unit/config/test_config.py::TestIniParser::test_argvlist_quoting_in_command tests/unit/config/test_config.py::TestIniParser::test_getpath tests/unit/config/test_config.py::TestIniParser::test_argvlist tests/unit/config/test_config.py::TestIniParser::test_positional_arguments_are_only_replaced_when_standing_alone tests/unit/config/test_config.py::TestIniParser::test_getdict tests/unit/config/test_config.py::TestIniParser::test_missing_env_sub_populates_missing_subs tests/unit/config/test_config.py::TestIniParser::test_missing_env_sub_raises_config_error_in_non_testenv tests/unit/config/test_config.py::TestIniParser::test_substitution_with_multiple_words tests/unit/config/test_config.py::TestIniParser::test_expand_section_name tests/unit/config/test_config.py::TestIniParser::test_argvlist_multiline tests/unit/config/test_config.py::TestIniParser::test_getstring_fallback_sections tests/unit/config/test_config.py::TestIniParser::test_normal_env_sub_works tests/unit/config/test_config.py::TestIniParser::test_argvlist_posargs_with_quotes tests/unit/config/test_config.py::TestIniParser::test_getstring_other_section_substitution tests/unit/config/test_config.py::TestIniParser::test_getbool tests/unit/config/test_config.py::TestIniParser::test_substitution_colon_prefix tests/unit/config/test_config.py::TestIniParser::test_value_matches_section_substitution tests/unit/config/test_config.py::TestIniParser::test_getstring_single tests/unit/config/test_config.py::TestIniParser::test_getargv tests/unit/config/test_config.py::TestIniParser::test_getlist tests/unit/config/test_config.py::TestIniParser::test_argvlist_command_contains_hash tests/unit/config/test_config.py::TestIniParser::test_argvlist_comment_after_command tests/unit/config/test_config.py::TestIniParser::test_getstring_environment_substitution_with_default tests/unit/config/test_config.py::TestIniParser::test_argvlist_positional_substitution tests/unit/config/test_config.py::TestIniParser::test_getstring_substitution tests/unit/config/test_config.py::TestIniParser::test_missing_substitution tests/unit/config/test_config.py::TestIniParser::test_posargs_are_added_escaped_issue310 tests/unit/config/test_config.py::TestIniParser::test_value_doesn_match_section_substitution tests/unit/config/test_config.py::TestParseEnv::test_parse_recreate tests/unit/config/test_config.py::TestConfigTestEnv::test_do_not_substitute_more_than_needed tests/unit/config/test_config.py::TestConfigTestEnv::test_factors_support_curly_braces tests/unit/config/test_config.py::TestConfigTestEnv::test_passenv_from_global_env tests/unit/config/test_config.py::TestConfigTestEnv::test_rewrite_posargs tests/unit/config/test_config.py::TestConfigTestEnv::test_changedir_override tests/unit/config/test_config.py::TestConfigTestEnv::test_passenv_as_space_separated_list[linux2] tests/unit/config/test_config.py::TestConfigTestEnv::test_ignore_outcome tests/unit/config/test_config.py::TestConfigTestEnv::test_changedir tests/unit/config/test_config.py::TestConfigTestEnv::test_default_factors tests/unit/config/test_config.py::TestConfigTestEnv::test_ignore_errors tests/unit/config/test_config.py::TestConfigTestEnv::test_substitution_double tests/unit/config/test_config.py::TestConfigTestEnv::test_default_factors_conflict_lying_name tests/unit/config/test_config.py::TestConfigTestEnv::test_envbindir_jython[pypy3] tests/unit/config/test_config.py::TestConfigTestEnv::test_factors_groups_touch tests/unit/config/test_config.py::TestConfigTestEnv::test_factors tests/unit/config/test_config.py::TestConfigTestEnv::test_install_command_substitutions_other_section tests/unit/config/test_config.py::TestConfigTestEnv::test_installpkg_tops_develop tests/unit/config/test_config.py::TestConfigTestEnv::test_passenv_with_factor tests/unit/config/test_config.py::TestConfigTestEnv::test_single_value_from_other_secton tests/unit/config/test_config.py::TestConfigTestEnv::test_factor_use_not_checked tests/unit/config/test_config.py::TestConfigTestEnv::test_substitution_notfound_issue515 tests/unit/config/test_config.py::TestConfigTestEnv::test_period_in_factor tests/unit/config/test_config.py::TestConfigTestEnv::test_install_command_substitutions tests/unit/config/test_config.py::TestConfigTestEnv::test_take_dependencies_from_other_testenv[envlist0-deps0] tests/unit/config/test_config.py::TestConfigTestEnv::test_pip_pre_cmdline_override tests/unit/config/test_config.py::TestConfigTestEnv::test_envbindir_win[/-bin] tests/unit/config/test_config.py::TestConfigTestEnv::test_factors_in_boolean tests/unit/config/test_config.py::TestConfigTestEnv::test_multilevel_substitution tests/unit/config/test_config.py::TestConfigTestEnv::test_install_command_setting tests/unit/config/test_config.py::TestConfigTestEnv::test_take_dependencies_from_other_section tests/unit/config/test_config.py::TestConfigTestEnv::test_passenv_as_multiline_list[linux2] tests/unit/config/test_config.py::TestConfigTestEnv::test_rewrite_simple_posargs tests/unit/config/test_config.py::TestConfigTestEnv::test_envbindir_win[\\-Scripts] tests/unit/config/test_config.py::TestConfigTestEnv::test_substitution_nested_env_defaults tests/unit/config/test_config.py::TestConfigTestEnv::test_commentchars_issue33 tests/unit/config/test_config.py::TestConfigTestEnv::test_simple tests/unit/config/test_config.py::TestConfigTestEnv::test_envbindir tests/unit/config/test_config.py::TestConfigTestEnv::test_defaults tests/unit/config/test_config.py::TestConfigTestEnv::test_recursive_substitution_cycle_fails tests/unit/config/test_config.py::TestConfigTestEnv::test_envbindir_jython[pypy] tests/unit/config/test_config.py::TestConfigTestEnv::test_factor_expansion tests/unit/config/test_config.py::TestConfigTestEnv::test_substitution_positional tests/unit/config/test_config.py::TestConfigTestEnv::test_passenv_glob_from_global_env tests/unit/config/test_config.py::TestConfigTestEnv::test_default_factors_conflict tests/unit/config/test_config.py::TestConfigTestEnv::test_allowlist_externals tests/unit/config/test_config.py::TestConfigTestEnv::test_substitution_notfound_issue246 tests/unit/config/test_config.py::TestConfigTestEnv::test_envconfigs_based_on_factors tests/unit/config/test_config.py::TestConfigTestEnv::test_specific_command_overrides tests/unit/config/test_config.py::TestConfigTestEnv::test_install_command_must_contain_packages tests/unit/config/test_config.py::TestConfigTestEnv::test_posargs_backslashed_or_quoted tests/unit/config/test_config.py::TestConfigTestEnv::test_regression_test_issue_706[envlist0] tests/unit/config/test_config.py::TestConfigTestEnv::test_substitution_defaults tests/unit/config/test_config.py::TestConfigTestEnv::test_sitepackages_switch tests/unit/config/test_config.py::TestConfigTestEnv::test_factors_in_setenv tests/unit/config/test_config.py::TestConfigTestEnv::test_factor_ops tests/unit/config/test_config.py::TestConfigTestEnv::test_no_spinner tests/unit/config/test_config.py::TestConfigTestEnv::test_pip_pre tests/unit/config/test_config.py::TestConfigTestEnv::test_substitution_noargs_issue240 tests/unit/config/test_config.py::TestConfigTestEnv::test_curly_braces_in_setenv tests/unit/config/test_config.py::TestConfigTestEnv::test_take_dependencies_from_other_testenv[envlist1-deps1] tests/unit/config/test_config.py::TestConfigTestEnv::test_substitution_error tests/unit/config/test_config.py::TestConfigTestEnv::test_envbindir_jython[jython] tests/unit/config/test_config.py::TestVenvConfig::test_process_deps tests/unit/config/test_config.py::TestVenvConfig::test_envdir_set_manually_setup_cfg tests/unit/config/test_config.py::TestVenvConfig::test_force_dep_version tests/unit/config/test_config.py::TestVenvConfig::test_config_parsing_multienv tests/unit/config/test_config.py::TestVenvConfig::test_force_dep_with_url tests/unit/config/test_config.py::TestVenvConfig::test_envdir_set_manually tests/unit/config/test_config.py::TestVenvConfig::test_suicide_interrupt_terminate_timeout_set_manually tests/unit/config/test_config.py::TestVenvConfig::test_config_parsing_minimal tests/unit/config/test_config.py::TestVenvConfig::test_envdir_set_manually_with_substitutions tests/unit/config/test_config.py::TestVenvConfig::test_is_same_dep tests/unit/config/test_config.py::TestHashseedOption::test_passing_empty_string tests/unit/config/test_config.py::TestHashseedOption::test_setenv_in_one_testenv tests/unit/config/test_config.py::TestHashseedOption::test_passing_string tests/unit/config/test_config.py::TestHashseedOption::test_default tests/unit/config/test_config.py::TestHashseedOption::test_noset_with_setenv tests/unit/config/test_config.py::TestHashseedOption::test_setenv tests/unit/config/test_config.py::TestHashseedOption::test_passing_no_argument tests/unit/config/test_config.py::TestHashseedOption::test_passing_integer tests/unit/config/test_config.py::TestHashseedOption::test_one_random_hashseed tests/unit/config/test_config.py::TestHashseedOption::test_noset tests/unit/config/test_config.py::TestSetenv::test_setenv_uses_other_setenv tests/unit/config/test_config.py::TestSetenv::test_setenv_env_file[\n-False] tests/unit/config/test_config.py::TestSetenv::test_setenv_recursive_direct_with_default tests/unit/config/test_config.py::TestSetenv::test_setenv_env_file[#MAGIC tests/unit/config/test_config.py::TestSetenv::test_setenv_env_file[\nMAGIC tests/unit/config/test_config.py::TestSetenv::test_setenv_cross_section_subst_issue294 tests/unit/config/test_config.py::TestSetenv::test_setenv_cross_section_mixed tests/unit/config/test_config.py::TestSetenv::test_setenv_env_file[None-False] tests/unit/config/test_config.py::TestSetenv::test_setenv_recursive_direct_with_default_nested tests/unit/config/test_config.py::TestSetenv::test_setenv_with_envdir_and_basepython tests/unit/config/test_config.py::TestSetenv::test_setenv_uses_os_environ tests/unit/config/test_config.py::TestSetenv::test_setenv_recursive_direct_without_default tests/unit/config/test_config.py::TestSetenv::test_getdict_lazy_update tests/unit/config/test_config.py::TestSetenv::test_setenv_ordering_1 tests/unit/config/test_config.py::TestSetenv::test_setenv_cross_section_subst_twice tests/unit/config/test_config.py::TestSetenv::test_setenv_comment tests/unit/config/test_config.py::TestSetenv::test_setenv_default_os_environ tests/unit/config/test_config.py::TestSetenv::test_setenv_env_file[MAGIC=yes-True] tests/unit/config/test_config.py::TestSetenv::test_setenv_overrides tests/unit/config/test_config.py::TestSetenv::test_getdict_lazy tests/unit/config/test_config.py::TestConfigConstSubstitutions::test_replace_pathsep[;] tests/unit/config/test_config.py::TestConfigConstSubstitutions::test_dirsep_replace[\\] tests/unit/config/test_config.py::TestConfigConstSubstitutions::test_dirsep_replace[\\\\] tests/unit/config/test_config.py::TestConfigConstSubstitutions::test_dirsep_regex tests/unit/config/test_config.py::TestConfigConstSubstitutions::test_replace_pathsep[:] tests/unit/config/test_config.py::TestConfigConstSubstitutions::test_pathsep_regex