From: Mike Bayer Date: Mon, 22 Feb 2010 16:35:35 +0000 (+0000) Subject: generalized "test all the picklers" iterator works cross platform X-Git-Tag: rel_0_6beta2~163 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=154f5a9434b7db56f2d6065c22ab6fdea8614b4e;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git generalized "test all the picklers" iterator works cross platform --- diff --git a/lib/sqlalchemy/test/util.py b/lib/sqlalchemy/test/util.py index 60b0a4ef81..5be00f9068 100644 --- a/lib/sqlalchemy/test/util.py +++ b/lib/sqlalchemy/test/util.py @@ -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 diff --git a/test/base/test_utils.py b/test/base/test_utils.py index df80e41e4a..e7e4116f72 100644 --- a/test/base/test_utils.py +++ b/test/base/test_utils.py @@ -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):