diff options
author | Christopher Marchfelder <marchfelder@googlemail.com> | 2020-10-23 10:08:24 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-23 10:08:24 (GMT) |
commit | da6f098188c9825f10ae60db8987056b3a54c2e8 (patch) | |
tree | 12fd534f1159492f1194c1fb14fe8c5ec20cdae2 /Lib/test | |
parent | 345cd37abe324ad4f60f80e2c3133b8849e54e9b (diff) | |
download | cpython-da6f098188c9825f10ae60db8987056b3a54c2e8.zip cpython-da6f098188c9825f10ae60db8987056b3a54c2e8.tar.gz cpython-da6f098188c9825f10ae60db8987056b3a54c2e8.tar.bz2 |
bpo-40592: shutil.which will not return None anymore if ; is the last char in PATHEXT (GH-20088)
shutil.which will not return None anymore for empty str in PATHEXT
Empty PATHEXT will now be defaulted to _WIN_DEFAULT_PATHEXT
Diffstat (limited to 'Lib/test')
-rw-r--r-- | Lib/test/test_shutil.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/Lib/test/test_shutil.py b/Lib/test/test_shutil.py index 06ca50a..890f2c7 100644 --- a/Lib/test/test_shutil.py +++ b/Lib/test/test_shutil.py @@ -1849,6 +1849,23 @@ class TestWhich(BaseTest, unittest.TestCase): rv = shutil.which(program, path=self.temp_dir) self.assertEqual(rv, temp_filexyz.name) + # Issue 40592: See https://bugs.python.org/issue40592 + @unittest.skipUnless(sys.platform == "win32", 'test specific to Windows') + def test_pathext_with_empty_str(self): + ext = ".xyz" + temp_filexyz = tempfile.NamedTemporaryFile(dir=self.temp_dir, + prefix="Tmp2", suffix=ext) + self.addCleanup(temp_filexyz.close) + + # strip path and extension + program = os.path.basename(temp_filexyz.name) + program = os.path.splitext(program)[0] + + with os_helper.EnvironmentVarGuard() as env: + env['PATHEXT'] = f"{ext};" # note the ; + rv = shutil.which(program, path=self.temp_dir) + self.assertEqual(rv, temp_filexyz.name) + class TestWhichBytes(TestWhich): def setUp(self): |