| # 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() |