summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_shutil.py
diff options
context:
space:
mode:
authorBarry Warsaw <barry@python.org>2013-04-16 15:18:18 (GMT)
committerBarry Warsaw <barry@python.org>2013-04-16 15:18:18 (GMT)
commitecaefcf44eca8a77946a4d2cc390b6d782647bfc (patch)
treeefcde9deb4f4d7eed790a8dc32d601eb8c6f64cf /Lib/test/test_shutil.py
parent7c5e094cbfa6769bf4cabfa5f883f2dc5320667b (diff)
parent618738b921d9b3fa1f54304dd18236b3d465fbf8 (diff)
downloadcpython-ecaefcf44eca8a77946a4d2cc390b6d782647bfc.zip
cpython-ecaefcf44eca8a77946a4d2cc390b6d782647bfc.tar.gz
cpython-ecaefcf44eca8a77946a4d2cc390b6d782647bfc.tar.bz2
- Issue #17012: shutil.which() no longer fallbacks to the PATH environment
variable if empty path argument is specified. Patch by Serhiy Storchaka.
Diffstat (limited to 'Lib/test/test_shutil.py')
-rw-r--r--Lib/test/test_shutil.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/Lib/test/test_shutil.py b/Lib/test/test_shutil.py
index 5a78440..2907ad8 100644
--- a/Lib/test/test_shutil.py
+++ b/Lib/test/test_shutil.py
@@ -25,6 +25,7 @@ import warnings
from test import support
from test.support import TESTFN, check_warnings, captured_stdout, requires_zlib
+from unittest.mock import patch
try:
import bz2
@@ -1363,6 +1364,26 @@ class TestWhich(unittest.TestCase):
rv = shutil.which(self.file[:-4], path=self.dir)
self.assertEqual(rv, self.temp_file.name[:-4] + ".EXE")
+ def test_environ_path(self):
+ with support.EnvironmentVarGuard() as env:
+ env['PATH'] = self.dir
+ rv = shutil.which(self.file)
+ self.assertEqual(rv, self.temp_file.name)
+
+ def test_empty_path(self):
+ base_dir = os.path.dirname(self.dir)
+ with support.temp_cwd(path=self.dir), \
+ support.EnvironmentVarGuard() as env:
+ env['PATH'] = self.dir
+ rv = shutil.which(self.file, path='')
+ self.assertIsNone(rv)
+
+ def test_empty_path_no_PATH(self):
+ with support.EnvironmentVarGuard() as env:
+ env.pop('PATH', None)
+ rv = shutil.which(self.file)
+ self.assertIsNone(rv)
+
class TestMove(unittest.TestCase):