Author: Philip Jenvey <[email protected]>
Branch: py3k
Changeset: r64931:f187810ad0ec
Date: 2013-06-17 16:44 -0700
http://bitbucket.org/pypy/pypy/changeset/f187810ad0ec/

Log:    cpython returns a formal iter here

diff --git a/lib_pypy/_collections.py b/lib_pypy/_collections.py
--- a/lib_pypy/_collections.py
+++ b/lib_pypy/_collections.py
@@ -431,5 +431,6 @@
 
            This API is used by pickle.py and copy.py.
         """
-        return (type(self), (self.default_factory,), None, None, self.items())
+        return (type(self), (self.default_factory,), None, None,
+                iter(self.items()))
 
diff --git a/pypy/module/_collections/app_defaultdict.py 
b/pypy/module/_collections/app_defaultdict.py
--- a/pypy/module/_collections/app_defaultdict.py
+++ b/pypy/module/_collections/app_defaultdict.py
@@ -63,4 +63,5 @@
 
            This API is used by pickle.py and copy.py.
         """
-        return (type(self), (self._default_factory,), None, None, self.items())
+        return (type(self), (self._default_factory,), None, None,
+                iter(self.items()))
diff --git a/pypy/module/_collections/test/test_defaultdict.py 
b/pypy/module/_collections/test/test_defaultdict.py
--- a/pypy/module/_collections/test/test_defaultdict.py
+++ b/pypy/module/_collections/test/test_defaultdict.py
@@ -56,3 +56,9 @@
         assert len(d2) == 1
         assert d2[2] == 3
         assert d2[3] == 42
+
+    def test_reduce(self):
+        import _collections
+        d = _collections.defaultdict(None, {3: 4})
+        dict_iter = d.__reduce__()[4]
+        assert type(dict_iter) is type(iter(d.items()))
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to