]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
generalized "test all the picklers" iterator works cross platform
authorMike Bayer <mike_mp@zzzcomputing.com>
Mon, 22 Feb 2010 16:35:35 +0000 (16:35 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Mon, 22 Feb 2010 16:35:35 +0000 (16:35 +0000)
lib/sqlalchemy/test/util.py
test/base/test_utils.py

index 60b0a4ef81e0645f3be730e595e4c4145a10d23c..5be00f9068e8932d7c8de171551b92926289c77e 100644 (file)
@@ -22,3 +22,21 @@ else:
         pass
 
 
+
+def picklers():
+    picklers = set()
+    # Py2K
+    try:
+        import cPickle
+        picklers.add(cPickle)
+    except ImportError:
+        pass
+    # end Py2K
+    import pickle
+    picklers.add(pickle)
+    
+    # yes, this thing needs this much testing
+    for pickle in picklers:
+        for protocol in -1, 0, 1, 2:
+            yield pickle.loads, lambda d:pickle.dumps(d, protocol)
+    
\ No newline at end of file
index df80e41e4ad9caaecc68213290a19b8675047db5..e7e4116f7224fea447312e229fd5f25a9ecc6c8b 100644 (file)
@@ -3,7 +3,7 @@ import copy, threading
 from sqlalchemy import util, sql, exc
 from sqlalchemy.test import TestBase
 from sqlalchemy.test.testing import eq_, is_, ne_
-from sqlalchemy.test.util import gc_collect
+from sqlalchemy.test.util import gc_collect, picklers
 
 class OrderedDictTest(TestBase):
     def test_odict(self):
@@ -79,24 +79,9 @@ class OrderedSetTest(TestBase):
 
 class FrozenDictTest(TestBase):
     def test_serialize(self):
-        
-        picklers = set()
-        # Py2K
-        try:
-            import cPickle
-            picklers.add(cPickle)
-        except ImportError:
-            pass
-        # end Py2K
-        import pickle
-        picklers.add(pickle)
-        
         d = util.frozendict({1:2, 3:4})
-        
-        # yes, this thing needs this much testing
-        for pickle in picklers:
-            for protocol in -1, 0, 1, 2:
-                print pickle.loads(pickle.dumps(d, protocol))
+        for loads, dumps in picklers():
+            print loads(dumps(d))
         
         
 class ColumnCollectionTest(TestBase):