| import pickle | |
| from cStringIO import StringIO | |
| from test import test_support | |
| from test.pickletester import AbstractPickleTests | |
| from test.pickletester import AbstractPickleModuleTests | |
| from test.pickletester import AbstractPersistentPicklerTests | |
| from test.pickletester import AbstractPicklerUnpicklerObjectTests | |
| class PickleTests(AbstractPickleTests, AbstractPickleModuleTests): | |
| def dumps(self, arg, proto=0, fast=0): | |
| # Ignore fast | |
| return pickle.dumps(arg, proto) | |
| def loads(self, buf): | |
| # Ignore fast | |
| return pickle.loads(buf) | |
| module = pickle | |
| error = KeyError | |
| class PicklerTests(AbstractPickleTests): | |
| error = KeyError | |
| def dumps(self, arg, proto=0, fast=0): | |
| f = StringIO() | |
| p = pickle.Pickler(f, proto) | |
| if fast: | |
| p.fast = fast | |
| p.dump(arg) | |
| f.seek(0) | |
| return f.read() | |
| def loads(self, buf): | |
| f = StringIO(buf) | |
| u = pickle.Unpickler(f) | |
| return u.load() | |
| class PersPicklerTests(AbstractPersistentPicklerTests): | |
| def dumps(self, arg, proto=0, fast=0): | |
| class PersPickler(pickle.Pickler): | |
| def persistent_id(subself, obj): | |
| return self.persistent_id(obj) | |
| f = StringIO() | |
| p = PersPickler(f, proto) | |
| if fast: | |
| p.fast = fast | |
| p.dump(arg) | |
| f.seek(0) | |
| return f.read() | |
| def loads(self, buf): | |
| class PersUnpickler(pickle.Unpickler): | |
| def persistent_load(subself, obj): | |
| return self.persistent_load(obj) | |
| f = StringIO(buf) | |
| u = PersUnpickler(f) | |
| return u.load() | |
| class PicklerUnpicklerObjectTests(AbstractPicklerUnpicklerObjectTests): | |
| pickler_class = pickle.Pickler | |
| unpickler_class = pickle.Unpickler | |
| def test_main(): | |
| test_support.run_unittest( | |
| PickleTests, | |
| PicklerTests, | |
| PersPicklerTests, | |
| PicklerUnpicklerObjectTests, | |
| ) | |
| test_support.run_doctest(pickle) | |
| if __name__ == "__main__": | |
| test_main() |