[pypy-svn] r26569 - pypy/dist/pypy/interpreter/test

ericvrp at codespeak.net ericvrp at codespeak.net
Sat Apr 29 11:39:03 CEST 2006


Author: ericvrp
Date: Sat Apr 29 11:39:00 2006
New Revision: 26569

Modified:
   pypy/dist/pypy/interpreter/test/test_pickle.py
Log:
(Yusei, ericvrp)
more tests that pass


Modified: pypy/dist/pypy/interpreter/test/test_pickle.py
==============================================================================
--- pypy/dist/pypy/interpreter/test/test_pickle.py	(original)
+++ pypy/dist/pypy/interpreter/test/test_pickle.py	Sat Apr 29 11:39:00 2006
@@ -1,5 +1,5 @@
 class AppTestInterpObjectPickling:
-
+    
     def test_pickle_code(self):
         def f():
             return 42
@@ -8,7 +8,7 @@
         pckl = pickle.dumps(code)
         result = pickle.loads(pckl)
         assert code == result
-
+    
     def test_pickle_global_func(self):
         import new
         mod = new.module('mod')
@@ -23,7 +23,7 @@
         result = pickle.loads(pckl)
         assert func is result
         del sys.modules['mod']
-
+    
     def test_pickle_not_imported_module(self):
         import new
         mod = new.module('mod')
@@ -34,13 +34,13 @@
         assert mod.__name__ == result.__name__
         assert mod.__dict__ == result.__dict__
         #print mod.__dict__
-
+    
     def test_pickle_builtin_func(self):
         import pickle
         pckl = pickle.dumps(map)
         result = pickle.loads(pckl)
         assert map is result
-
+    
     def test_pickle_non_top_reachable_func(self):
         def func():
             return 42
@@ -57,7 +57,7 @@
         assert func.func_dict     == result.func_dict
         assert func.func_doc      == result.func_doc
         assert func.func_globals  == result.func_globals
-
+    
     def test_pickle_cell(self):
         def g():
             x = [42]
@@ -65,13 +65,13 @@
                 x[0] += 1
                 return x
             return f.func_closure[0]
-        import pickle       
+        import pickle
         cell = g()
         pckl = pickle.dumps(cell)
         result = pickle.loads(pckl)
         assert cell == result
         assert not (cell != result)
-
+    
     def test_pickle_frame(self):
         skip("work in progress")
         from sys import exc_info
@@ -86,7 +86,7 @@
         pckl   = pickle.dumps(frame)
         result = pickle.loads(pckl)
         assert frame == result
-        
+    
     def test_pickle_traceback(self):
         skip("work in progress")
         def f():
@@ -101,39 +101,57 @@
         pckl   = pickle.dumps(tb)
         result = pickle.loads(pckl)
         assert tb == result
-
+    
     def test_pickle_module(self):
         import pickle
         mod    = pickle
         pckl   = pickle.dumps(mod)
         result = pickle.loads(pckl)
         assert mod is result
-
+    
     def test_pickle_moduledict(self):
         import pickle
         moddict  = pickle.__dict__
         pckl     = pickle.dumps(moddict)
         result   = pickle.loads(pckl)
         assert moddict is result
-
+    
     def test_pickle_bltins_module(self):
         import pickle
         mod  = __builtins__
         pckl     = pickle.dumps(mod)
         result   = pickle.loads(pckl)
         assert mod is result
-
+    
+    def test_pickle_buffer(self):
+        import pickle
+        a = buffer('ABCDEF')
+        pckl     = pickle.dumps(a)
+        result   = pickle.loads(pckl)
+        assert a == result
+    
+    def test_pickle_complex(self):
+        import pickle
+        a = complex(1.23,4.567)
+        pckl     = pickle.dumps(a)
+        result   = pickle.loads(pckl)
+        assert a == result
+    
     def test_pickle_method(self):
         skip("work in progress")
         class myclass(object):
             def f(self):
                 pass
+            def __reduce__(self):
+                return (myclass,())
         import pickle
-        method   = myclass.f
+        myclass_inst = myclass()
+        method   = myclass_inst.f
         pckl     = pickle.dumps(method)
         result   = pickle.loads(pckl)
         assert method == result
         
+    
     def test_pickle_staticmethod(self):
         skip("work in progress")
         class myclass(object):
@@ -145,7 +163,7 @@
         pckl     = pickle.dumps(method)
         result   = pickle.loads(pckl)
         assert method == result
-
+    
     def test_pickle_classmethod(self):
         skip("work in progress")
         class myclass(object):
@@ -157,26 +175,7 @@
         pckl     = pickle.dumps(method)
         result   = pickle.loads(pckl)
         assert method == result
-
-    def test_pickle_dictiter(self):
-        skip("work in progress")
-        import pickle
-        diter  = iter({})
-        pckl   = pickle.dumps(diter)
-        result = pickle.loads(pckl)
-        assert diter == result
-
-    def test_pickle_enum(self):
-        skip("work in progress")
-        import pickle
-        e      = enumerate([])
-        pckl   = pickle.dumps(e)
-        result = pickle.loads(pckl)
-        assert e == result
-        
-    #def test_pickle_enumfactory(self):
-    #    skip("work in progress")
-
+    
     def test_pickle_sequenceiter(self):
         '''
         In PyPy there is no distinction here between listiterator and
@@ -189,7 +188,27 @@
         pckl   = pickle.dumps(liter)
         result = pickle.loads(pckl)
         assert liter == result
-
+    
+    def test_pickle_dictiter(self):
+        skip("work in progress")
+        import pickle
+        diter  = iter({})
+        pckl   = pickle.dumps(diter)
+        result = pickle.loads(pckl)
+        assert diter == result
+    
+    def test_pickle_enum(self):
+        import pickle
+        e      = enumerate(range(10))
+        e.next()
+        e.next()
+        e._iter= 42 #XXX HACK, because we have no sequence/dict iterator yet
+        pckl   = pickle.dumps(e)
+        result = pickle.loads(pckl)
+        assert type(e) is type(result)
+        assert e._iter  == result._iter #change when _iter is an iter(..) again
+        assert e._index == result._index
+    
     def test_pickle_xrangeiter(self):
         import pickle
         riter  = iter(xrange(5))
@@ -199,7 +218,7 @@
         result = pickle.loads(pckl)
         assert type(riter) is type(result)
         assert list(result) == [2,3,4]
-
+    
     def test_pickle_reversed_iterator(self):
         import pickle
         i = reversed(xrange(5))
@@ -209,10 +228,10 @@
         result = pickle.loads(pckl)
         assert type(i) is type(result)
         assert list(result) == [2,1,0]
-
+    
     def test_pickle_generator(self):
         skip("work in progress")
-        import pickle        
+        import pickle
         def giveme(n):
             x = 0
             while x < n:



More information about the Pypy-commit mailing list