[Python-checkins] cpython (3.5): Issue #16991: Do not return None from OrderedDict.__reversed__.

eric.snow python-checkins at python.org
Sat May 30 20:04:23 CEST 2015


https://hg.python.org/cpython/rev/951a3ef82180
changeset: 96394:951a3ef82180
branch: 3.5
user: Eric Snow <ericsnowcurrently at gmail.com>
date: Sat May 30 11:43:36 2015 -0600
summary:
 Issue #16991: Do not return None from OrderedDict.__reversed__.
files:
 Lib/test/test_collections.py | 14 +++++++++++++-
 Objects/odictobject.c | 3 ---
 2 files changed, 13 insertions(+), 4 deletions(-)
diff --git a/Lib/test/test_collections.py b/Lib/test/test_collections.py
--- a/Lib/test/test_collections.py
+++ b/Lib/test/test_collections.py
@@ -1773,6 +1773,19 @@
 self.assertEqual(sorted(reversed(od)),
 sorted([t[0] for t in reversed(pairs)]))
 
+ def test_iterators_empty(self):
+ OrderedDict = self.module.OrderedDict
+ od = OrderedDict()
+ empty = []
+ self.assertEqual(list(od), empty)
+ self.assertEqual(list(od.keys()), empty)
+ self.assertEqual(list(od.values()), empty)
+ self.assertEqual(list(od.items()), empty)
+ self.assertEqual(list(reversed(od)), empty)
+ self.assertEqual(list(reversed(od.keys())), empty)
+ self.assertEqual(list(reversed(od.values())), empty)
+ self.assertEqual(list(reversed(od.items())), empty)
+
 def test_popitem(self):
 OrderedDict = self.module.OrderedDict
 pairs = [('c', 1), ('b', 2), ('a', 3), ('d', 4), ('e', 5), ('f', 6)]
@@ -1965,7 +1978,6 @@
 od = OrderedDict(**d)
 self.assertGreater(sys.getsizeof(od), sys.getsizeof(d))
 
- OrderedDict = self.module.OrderedDict
 def test_override_update(self):
 OrderedDict = self.module.OrderedDict
 # Verify that subclasses can override update() without breaking __init__()
diff --git a/Objects/odictobject.c b/Objects/odictobject.c
--- a/Objects/odictobject.c
+++ b/Objects/odictobject.c
@@ -1357,9 +1357,6 @@
 static PyObject *
 odict_reversed(PyODictObject *od)
 {
- if (_odict_EMPTY(od)) {
- Py_RETURN_NONE;
- }
 return odictiter_new(od, _odict_ITER_KEYS|_odict_ITER_REVERSED);
 }
 
-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /