[Python-checkins] cpython (3.3): Close #17702: On error, os.environb now removes suppress the except context
victor.stinner
python-checkins at python.org
Fri Aug 23 19:24:49 CEST 2013
http://hg.python.org/cpython/rev/26c049dc1a4a
changeset: 85342:26c049dc1a4a
branch: 3.3
parent: 85338:b107f7a8730d
user: Victor Stinner <victor.stinner at gmail.com>
date: Fri Aug 23 19:19:15 2013 +0200
summary:
Close #17702: On error, os.environb now removes suppress the except context
when raising a new KeyError with the original key.
files:
Lib/os.py | 4 ++--
Lib/test/test_os.py | 3 +++
Misc/NEWS | 3 +++
3 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/Lib/os.py b/Lib/os.py
--- a/Lib/os.py
+++ b/Lib/os.py
@@ -673,7 +673,7 @@
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 @@
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:
diff --git a/Lib/test/test_os.py b/Lib/test/test_os.py
--- a/Lib/test/test_os.py
+++ b/Lib/test/test_os.py
@@ -644,10 +644,13 @@
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()."""
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -66,6 +66,9 @@
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.
--
Repository URL: http://hg.python.org/cpython
More information about the Python-checkins
mailing list