]> granicus.if.org Git - python/commitdiff
Issue #16991: Do not return None from OrderedDict.__reversed__.
authorEric Snow <ericsnowcurrently@gmail.com>
Sat, 30 May 2015 17:43:36 +0000 (11:43 -0600)
committerEric Snow <ericsnowcurrently@gmail.com>
Sat, 30 May 2015 17:43:36 +0000 (11:43 -0600)
Lib/test/test_collections.py
Objects/odictobject.c

index 3bb326a7610f79fd1ea221984a7d44f635795a47..3f02129c1dfc4d526987d8bcd37c0e66b6014ca2 100644 (file)
@@ -1773,6 +1773,19 @@ class OrderedDictTests:
         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 @@ class OrderedDictTests:
         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__()
index a5fecabe29f9ac9dbbce49017c5dced71b253918..cc6c53c330055a47bfe657dcf0455cbe3db97de3 100644 (file)
@@ -1357,9 +1357,6 @@ static PyObject * odictiter_new(PyODictObject *, int);
 static PyObject *
 odict_reversed(PyODictObject *od)
 {
-    if (_odict_EMPTY(od)) {
-        Py_RETURN_NONE;
-    }
     return odictiter_new(od, _odict_ITER_KEYS|_odict_ITER_REVERSED);
 }