diff options
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/test/pickletester.py | 5 | ||||
-rw-r--r-- | Lib/test/test_xpickle.py | 47 |
2 files changed, 52 insertions, 0 deletions
diff --git a/Lib/test/pickletester.py b/Lib/test/pickletester.py index c6ffbea..e1a333b 100644 --- a/Lib/test/pickletester.py +++ b/Lib/test/pickletester.py @@ -806,6 +806,11 @@ class AbstractPickleModuleTests(unittest.TestCase): finally: os.remove(TESTFN) + def test_highest_protocol(self): + # Of course this needs to be changed when HIGHEST_PROTOCOL changes. + self.assertEqual(self.module.HIGHEST_PROTOCOL, 2) + + class AbstractPersistentPicklerTests(unittest.TestCase): # This class defines persistent_id() and persistent_load() diff --git a/Lib/test/test_xpickle.py b/Lib/test/test_xpickle.py new file mode 100644 index 0000000..4db894b --- /dev/null +++ b/Lib/test/test_xpickle.py @@ -0,0 +1,47 @@ +# test_pickle dumps and loads pickles via pickle.py. +# test_cpickle does the same, but via the cPickle module. +# This test covers the other two cases, making pickles with one module and +# loading them via the other. + +import pickle +import cPickle +import unittest +from cStringIO import StringIO + +from test import test_support +from test.pickletester import AbstractPickleTests + +class DumpCPickle_LoadPickle(AbstractPickleTests): + + error = KeyError + + def dumps(self, arg, proto=0, fast=0): + # Ignore fast + return cPickle.dumps(arg, proto) + + def loads(self, buf): + # Ignore fast + return pickle.loads(buf) + +class DumpPickle_LoadCPickle(AbstractPickleTests): + + error = cPickle.BadPickleGet + + def dumps(self, arg, proto=0, fast=0): + # Ignore fast + return pickle.dumps(arg, proto) + + def loads(self, buf): + # Ignore fast + return cPickle.loads(buf) + +def test_main(): + suite = unittest.TestSuite() + for test in (DumpCPickle_LoadPickle, + DumpPickle_LoadCPickle, + ): + suite.addTest(unittest.makeSuite(test)) + test_support.run_suite(suite) + +if __name__ == "__main__": + test_main() |