From 6a8ed70a6003c13800d908ab055038eb61ba4ce9 Mon Sep 17 00:00:00 2001 From: Eliah Kagan Date: Mon, 18 Dec 2023 20:00:56 -0500 Subject: [PATCH] Run test_env_vars_for_windows_tests only on Windows This skips the tests of how the HIDE_WINDOWS_KNOWN_ERRORS and HIDE_WINDOWS_FREEZE_ERRORS environment variables affect the same-named attributes of git.util, except when testing on Windows. These are parsed only to ever set a True value on Windows, but checking that this is the case is less important ever since git.util.rmtree was changed to not check HIDE_WINDOWS_KNOWN_ERRORS on other systems (and this is covered in other tests). Setting the variables to True on non-Windows systems would still have a bad effect on the tests themselves, some of which use them as skip or xfail conditions separate from the skipping logic in git.util.rmtree. However, this is effectively using them as part of the test suite (which they were initially meant for and which they may eventually go back to being, for #790), where they would not ordinarily have tests. The benefit and motivation for running these tests only on Windows is that the tests can be simplified, so that their parameter sets are no longer confusing. That change is also made here. --- test/test_util.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/test/test_util.py b/test/test_util.py index 9408a91a0..f3769088c 100644 --- a/test/test_util.py +++ b/test/test_util.py @@ -207,24 +207,28 @@ def _run_parse(name, value): ) return ast.literal_eval(output) + @pytest.mark.skipif( + os.name != "nt", + reason="These environment variables are only used on Windows.", + ) @pytest.mark.parametrize( "env_var_value, expected_truth_value", [ - (None, os.name == "nt"), # True on Windows when the environment variable is unset. + (None, True), # When the environment variable is unset. ("", False), (" ", False), ("0", False), - ("1", os.name == "nt"), + ("1", True), ("false", False), - ("true", os.name == "nt"), + ("true", True), ("False", False), - ("True", os.name == "nt"), + ("True", True), ("no", False), - ("yes", os.name == "nt"), + ("yes", True), ("NO", False), - ("YES", os.name == "nt"), + ("YES", True), (" no ", False), - (" yes ", os.name == "nt"), + (" yes ", True), ], ) @pytest.mark.parametrize(