summaryrefslogtreecommitdiffstats
path: root/Lib/test
diff options
context:
space:
mode:
authorChristopher Marchfelder <marchfelder@googlemail.com>2020-10-23 10:08:24 (GMT)
committerGitHub <noreply@github.com>2020-10-23 10:08:24 (GMT)
commitda6f098188c9825f10ae60db8987056b3a54c2e8 (patch)
tree12fd534f1159492f1194c1fb14fe8c5ec20cdae2 /Lib/test
parent345cd37abe324ad4f60f80e2c3133b8849e54e9b (diff)
downloadcpython-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.py17
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):