[pypy-commit] pypy default: also merge these tests so they run

bdkearns noreply at buildbot.pypy.org
Sun Feb 10 04:46:11 CET 2013


Author: Brian Kearns <bdkearns at gmail.com>
Branch: 
Changeset: r61018:7d728a69c7ce
Date: 2013-02-09 22:40 -0500
http://bitbucket.org/pypy/pypy/changeset/7d728a69c7ce/

Log:	also merge these tests so they run

diff --git a/lib_pypy/pypy_test/test_defaultdict.py b/lib_pypy/pypy_test/test_defaultdict.py
deleted file mode 100644
--- a/lib_pypy/pypy_test/test_defaultdict.py
+++ /dev/null
@@ -1,130 +0,0 @@
-# defaultdict Tests
-# from CPython2.5
-from __future__ import absolute_import
-import py
-import sys
-if sys.version_info < (2, 5):
-    # the app-level defaultdict relies on the interp-level dict
-    # calling __missing__()
-    py.test.skip("these tests only run on top of CPython 2.5")
-
-import copy
-
-from lib_pypy._collections import defaultdict
-
-def foobar():
-    return list
-
-class Test_defaultdict:
-    
-    def test_basic(self):
-        d1 = defaultdict()
-        assert d1.default_factory is None
-        d1.default_factory = list
-        d1[12].append(42)
-        assert d1 == {12: [42]}
-        d1[12].append(24)
-        assert d1 == {12: [42, 24]}
-        d1[13]
-        d1[14]
-        assert d1 == {12: [42, 24], 13: [], 14: []}
-        assert d1[12] is not d1[13] is not d1[14]
-        d2 = defaultdict(list, foo=1, bar=2)
-        assert d2.default_factory == list
-        assert d2 == {"foo": 1, "bar": 2}
-        assert d2["foo"] == 1
-        assert d2["bar"] == 2
-        assert d2[42] == []
-        assert "foo" in d2
-        assert "foo" in d2.keys()
-        assert "bar" in d2
-        assert "bar" in d2.keys()
-        assert 42 in d2
-        assert 42 in d2.keys()
-        assert 12 not in d2
-        assert 12 not in d2.keys()
-        d2.default_factory = None
-        assert d2.default_factory == None
-        py.test.raises(KeyError, d2.__getitem__, 15)
-        py.test.raises(TypeError, defaultdict, 1)
-
-    def test_constructor(self):
-        assert defaultdict(None) == {}
-        assert defaultdict(None, {1: 2}) == {1: 2}
-
-    def test_missing(self):
-        d1 = defaultdict()
-        py.test.raises(KeyError, d1.__missing__, 42)
-        d1.default_factory = list
-        assert d1.__missing__(42) == []
-
-    def test_repr(self):
-        d1 = defaultdict()
-        assert d1.default_factory == None
-        assert repr(d1) == "defaultdict(None, {})"
-        d1[11] = 41
-        assert repr(d1) == "defaultdict(None, {11: 41})"
-        d2 = defaultdict(int)
-        assert d2.default_factory == int
-        d2[12] = 42
-        assert repr(d2) == "defaultdict(<type 'int'>, {12: 42})"
-        def foo(): return 43
-        d3 = defaultdict(foo)
-        assert d3.default_factory is foo
-        d3[13]
-        assert repr(d3) == "defaultdict(%s, {13: 43})" % repr(foo)
-        d4 = defaultdict(int)
-        d4[14] = defaultdict()
-        assert repr(d4) == "defaultdict(%s, {14: defaultdict(None, {})})" % repr(int)
-
-    def test_recursive_repr(self):
-        # Issue2045: stack overflow when default_factory is a bound method
-        class sub(defaultdict):
-            def __init__(self):
-                self.default_factory = self._factory
-            def _factory(self):
-                return []
-        d = sub()
-        assert repr(d).startswith(
-            "defaultdict(<bound method sub._factory of defaultdict(...")
-
-    def test_copy(self):
-        d1 = defaultdict()
-        d2 = d1.copy()
-        assert type(d2) == defaultdict
-        assert d2.default_factory == None
-        assert d2 == {}
-        d1.default_factory = list
-        d3 = d1.copy()
-        assert type(d3) == defaultdict
-        assert d3.default_factory == list
-        assert d3 == {}
-        d1[42]
-        d4 = d1.copy()
-        assert type(d4) == defaultdict
-        assert d4.default_factory == list
-        assert d4 == {42: []}
-        d4[12]
-        assert d4 == {42: [], 12: []}
-
-    def test_shallow_copy(self):
-        d1 = defaultdict(foobar, {1: 1})
-        d2 = copy.copy(d1)
-        assert d2.default_factory == foobar
-        assert d2 == d1
-        d1.default_factory = list
-        d2 = copy.copy(d1)
-        assert d2.default_factory == list
-        assert d2 == d1
-
-    def test_deep_copy(self):
-        d1 = defaultdict(foobar, {1: [1]})
-        d2 = copy.deepcopy(d1)
-        assert d2.default_factory == foobar
-        assert d2 == d1
-        assert d1[1] is not d2[1]
-        d1.default_factory = list
-        d2 = copy.deepcopy(d1)
-        assert d2.default_factory == list
-        assert d2 == d1
-
diff --git a/lib_pypy/pypy_test/test_cPickle.py b/pypy/module/test_lib_pypy/test_cPickle.py
rename from lib_pypy/pypy_test/test_cPickle.py
rename to pypy/module/test_lib_pypy/test_cPickle.py
diff --git a/pypy/module/test_lib_pypy/test_cstringio.py b/pypy/module/test_lib_pypy/test_cStringIO.py
rename from pypy/module/test_lib_pypy/test_cstringio.py
rename to pypy/module/test_lib_pypy/test_cStringIO.py
--- a/pypy/module/test_lib_pypy/test_cstringio.py
+++ b/pypy/module/test_lib_pypy/test_cStringIO.py
@@ -1,4 +1,3 @@
-
 """
 Tests for the PyPy cStringIO implementation.
 """
@@ -8,7 +7,6 @@
         cls.w_io = cls.space.appexec([], "(): import cStringIO; return cStringIO")
         cls.w_bytes = cls.space.wrap('some bytes')
 
-
     def test_reset(self):
         """
         Test that the reset method of cStringIO objects sets the position
diff --git a/pypy/module/test_lib_pypy/test_collections.py b/pypy/module/test_lib_pypy/test_collections.py
--- a/pypy/module/test_lib_pypy/test_collections.py
+++ b/pypy/module/test_lib_pypy/test_collections.py
@@ -116,21 +116,120 @@
         # SF bug #1486663 -- this used to erroneously raise a TypeError
         SubclassWithKwargs(newarg=1)
 
+def foobar():
+    return list
+
 class TestDefaultDict:
+    def test_basic(self):
+        d1 = collections.defaultdict()
+        assert d1.default_factory is None
+        d1.default_factory = list
+        d1[12].append(42)
+        assert d1 == {12: [42]}
+        d1[12].append(24)
+        assert d1 == {12: [42, 24]}
+        d1[13]
+        d1[14]
+        assert d1 == {12: [42, 24], 13: [], 14: []}
+        assert d1[12] is not d1[13] is not d1[14]
+        d2 = collections.defaultdict(list, foo=1, bar=2)
+        assert d2.default_factory == list
+        assert d2 == {"foo": 1, "bar": 2}
+        assert d2["foo"] == 1
+        assert d2["bar"] == 2
+        assert d2[42] == []
+        assert "foo" in d2
+        assert "foo" in d2.keys()
+        assert "bar" in d2
+        assert "bar" in d2.keys()
+        assert 42 in d2
+        assert 42 in d2.keys()
+        assert 12 not in d2
+        assert 12 not in d2.keys()
+        d2.default_factory = None
+        assert d2.default_factory == None
+        py.test.raises(KeyError, d2.__getitem__, 15)
+        py.test.raises(TypeError, collections.defaultdict, 1)
+
+    def test_constructor(self):
+        assert collections.defaultdict(None) == {}
+        assert collections.defaultdict(None, {1: 2}) == {1: 2}
+
+    def test_missing(self):
+        d1 = collections.defaultdict()
+        py.test.raises(KeyError, d1.__missing__, 42)
+        d1.default_factory = list
+        assert d1.__missing__(42) == []
+
+    def test_repr(self):
+        d1 = collections.defaultdict()
+        assert d1.default_factory == None
+        assert repr(d1) == "defaultdict(None, {})"
+        d1[11] = 41
+        assert repr(d1) == "defaultdict(None, {11: 41})"
+        d2 = collections.defaultdict(int)
+        assert d2.default_factory == int
+        d2[12] = 42
+        assert repr(d2) == "defaultdict(<type 'int'>, {12: 42})"
+        def foo(): return 43
+        d3 = collections.defaultdict(foo)
+        assert d3.default_factory is foo
+        d3[13]
+        assert repr(d3) == "defaultdict(%s, {13: 43})" % repr(foo)
+        d4 = collections.defaultdict(int)
+        d4[14] = collections.defaultdict()
+        assert repr(d4) == "defaultdict(%s, {14: defaultdict(None, {})})" % repr(int)
+
+    def test_recursive_repr(self):
+        # Issue2045: stack overflow when default_factory is a bound method
+        class sub(collections.defaultdict):
+            def __init__(self):
+                self.default_factory = self._factory
+            def _factory(self):
+                return []
+        d = sub()
+        assert repr(d).startswith(
+            "defaultdict(<bound method sub._factory of defaultdict(...")
+
     def test_copy(self):
-        def f():
-            return 42
-        d = collections.defaultdict(f, {2: 3})
-        #
-        d1 = d.copy()
-        assert type(d1) is collections.defaultdict
-        assert len(d1) == 1
-        assert d1[2] == 3
-        assert d1[3] == 42
-        #
+        d1 = collections.defaultdict()
+        d2 = d1.copy()
+        assert type(d2) == collections.defaultdict
+        assert d2.default_factory == None
+        assert d2 == {}
+        d1.default_factory = list
+        d3 = d1.copy()
+        assert type(d3) == collections.defaultdict
+        assert d3.default_factory == list
+        assert d3 == {}
+        d1[42]
+        d4 = d1.copy()
+        assert type(d4) == collections.defaultdict
+        assert d4.default_factory == list
+        assert d4 == {42: []}
+        d4[12]
+        assert d4 == {42: [], 12: []}
+
+    def test_shallow_copy(self):
         import copy
-        d2 = copy.deepcopy(d)
-        assert type(d2) is collections.defaultdict
-        assert len(d2) == 1
-        assert d2[2] == 3
-        assert d2[3] == 42
+        d1 = collections.defaultdict(foobar, {1: 1})
+        d2 = copy.copy(d1)
+        assert d2.default_factory == foobar
+        assert d2 == d1
+        d1.default_factory = list
+        d2 = copy.copy(d1)
+        assert d2.default_factory == list
+        assert d2 == d1
+
+    def test_deep_copy(self):
+        import copy
+        d1 = collections.defaultdict(foobar, {1: [1]})
+        d2 = copy.deepcopy(d1)
+        assert d2.default_factory == foobar
+        assert d2 == d1
+        assert d1[1] is not d2[1]
+        d1.default_factory = list
+        d2 = copy.deepcopy(d1)
+        assert d2.default_factory == list
+        assert d2 == d1
+


More information about the pypy-commit mailing list