mirror of
https://github.com/python/cpython.git
synced 2025-08-31 14:07:50 +00:00
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
This commit is contained in:
parent
345cd37abe
commit
da6f098188
3 changed files with 24 additions and 1 deletions
|
@ -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):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue