Kaydet (Commit) 0c2dd0c0 authored tarafından Victor Stinner's avatar Victor Stinner

Close #17702: On error, os.environb now removes suppress the except context

when raising a new KeyError with the original key.
üst f1e02730
......@@ -673,7 +673,7 @@ class _Environ(MutableMapping):
value = self._data[self.encodekey(key)]
except KeyError:
# raise KeyError with the original key value
raise KeyError(key)
raise KeyError(key) from None
return self.decodevalue(value)
def __setitem__(self, key, value):
......@@ -689,7 +689,7 @@ class _Environ(MutableMapping):
del self._data[encodedkey]
except KeyError:
# raise KeyError with the original key value
raise KeyError(key)
raise KeyError(key) from None
def __iter__(self):
for key in self._data:
......
......@@ -644,10 +644,13 @@ class EnvironTests(mapping_tests.BasicTestMappingProtocol):
with self.assertRaises(KeyError) as cm:
os.environ[missing]
self.assertIs(cm.exception.args[0], missing)
self.assertTrue(cm.exception.__suppress_context__)
with self.assertRaises(KeyError) as cm:
del os.environ[missing]
self.assertIs(cm.exception.args[0], missing)
self.assertTrue(cm.exception.__suppress_context__)
class WalkTests(unittest.TestCase):
"""Tests for os.walk()."""
......
......@@ -66,6 +66,9 @@ Core and Builtins
Library
-------
- Issue #17702: On error, os.environb now removes suppress the except context
when raising a new KeyError with the original key.
- Issue #18755: Fixed the loader used in imp to allow get_data() to be called
multiple times.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment