mirror of https://github.com/python/cpython
Close #17702: On error, os.environb now removes suppress the except context
when raising a new KeyError with the original key.
This commit is contained in:
parent
f1e0273023
commit
0c2dd0c0a9
|
@ -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()."""
|
||||
|
|
Loading…
Reference in New Issue