summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@haypocalc.com>2010-08-19 17:10:18 (GMT)
committerVictor Stinner <victor.stinner@haypocalc.com>2010-08-19 17:10:18 (GMT)
commit38430e2dffa3fd9d1648681f3b705917631bdc9a (patch)
tree29e3b4d324aae125d5468a0eb17253d1e9dc5363 /Lib
parent9802b39c12712e924bed699812756ce5076b77a3 (diff)
downloadcpython-38430e2dffa3fd9d1648681f3b705917631bdc9a.zip
cpython-38430e2dffa3fd9d1648681f3b705917631bdc9a.tar.gz
cpython-38430e2dffa3fd9d1648681f3b705917631bdc9a.tar.bz2
Fix os.get_exec_path() (code and tests) for python -bb
Catch BytesWarning exceptions.
Diffstat (limited to 'Lib')
-rw-r--r--Lib/os.py4
-rw-r--r--Lib/test/test_os.py13
2 files changed, 12 insertions, 5 deletions
diff --git a/Lib/os.py b/Lib/os.py
index 60dc12f..02e8f14 100644
--- a/Lib/os.py
+++ b/Lib/os.py
@@ -387,13 +387,13 @@ def get_exec_path(env=None):
try:
path_list = env.get('PATH')
- except TypeError:
+ except (TypeError, BytesWarning):
path_list = None
if supports_bytes_environ:
try:
path_listb = env[b'PATH']
- except (KeyError, TypeError):
+ except (KeyError, TypeError, BytesWarning):
pass
else:
if path_list is not None:
diff --git a/Lib/test/test_os.py b/Lib/test/test_os.py
index 4910b1e..710a3f4 100644
--- a/Lib/test/test_os.py
+++ b/Lib/test/test_os.py
@@ -450,8 +450,12 @@ class EnvironTests(mapping_tests.BasicTestMappingProtocol):
if os.supports_bytes_environ:
# env cannot contain 'PATH' and b'PATH' keys
- self.assertRaises(ValueError,
- os.get_exec_path, {'PATH': '1', b'PATH': b'2'})
+ try:
+ mixed_env = {'PATH': '1', b'PATH': b'2'}
+ except BytesWarning:
+ pass
+ else:
+ self.assertRaises(ValueError, os.get_exec_path, mixed_env)
# bytes key and/or value
self.assertSequenceEqual(os.get_exec_path({b'PATH': b'abc'}),
@@ -723,7 +727,10 @@ class ExecTests(unittest.TestCase):
# os.get_exec_path() reads the 'PATH' variable
with _execvpe_mockup() as calls:
env_path = env.copy()
- env_path['PATH'] = program_path
+ if test_type is bytes:
+ env_path[b'PATH'] = program_path
+ else:
+ env_path['PATH'] = program_path
self.assertRaises(OSError,
os._execvpe, program, arguments, env=env_path)
self.assertEqual(len(calls), 1)