mirror of
https://github.com/python/cpython.git
synced 2025-09-03 15:31:08 +00:00

svn+ssh://pythondev@svn.python.org/python/trunk ........ r60990 | eric.smith | 2008-02-23 17:05:26 +0100 (Sat, 23 Feb 2008) | 1 line Removed duplicate Py_CHARMASK define. It's already defined in Python.h. ........ r60991 | andrew.kuchling | 2008-02-23 17:23:05 +0100 (Sat, 23 Feb 2008) | 4 lines #1330538: Improve comparison of xmlrpclib.DateTime and datetime instances. Remove automatic handling of datetime.date and datetime.time. This breaks backward compatibility, but python-dev discussion was strongly against this automatic conversion; see the bug for a link. ........ r60994 | andrew.kuchling | 2008-02-23 17:39:43 +0100 (Sat, 23 Feb 2008) | 1 line #835521: Add index entries for various pickle-protocol methods and attributes ........ r60995 | andrew.kuchling | 2008-02-23 18:10:46 +0100 (Sat, 23 Feb 2008) | 2 lines #1433694: minidom's .normalize() failed to set .nextSibling for last element. Fix by Malte Helmert ........ r61000 | christian.heimes | 2008-02-23 18:40:11 +0100 (Sat, 23 Feb 2008) | 1 line Patch #2167 from calvin: Remove unused imports ........ r61001 | christian.heimes | 2008-02-23 18:42:31 +0100 (Sat, 23 Feb 2008) | 1 line Patch #1957: syslogmodule: Release GIL when calling syslog(3) ........ r61002 | christian.heimes | 2008-02-23 18:52:07 +0100 (Sat, 23 Feb 2008) | 2 lines Issue #2051 and patch from Alexander Belopolsky: Permission for pyc and pyo files are inherited from the py file. ........
72 lines
1.7 KiB
Python
72 lines
1.7 KiB
Python
import pickle
|
|
import io
|
|
|
|
from test import test_support
|
|
|
|
from test.pickletester import AbstractPickleTests
|
|
from test.pickletester import AbstractPickleModuleTests
|
|
from test.pickletester import AbstractPersistentPicklerTests
|
|
|
|
class PickleTests(AbstractPickleTests, AbstractPickleModuleTests):
|
|
|
|
module = pickle
|
|
error = KeyError
|
|
|
|
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)
|
|
|
|
class PicklerTests(AbstractPickleTests):
|
|
|
|
error = KeyError
|
|
|
|
def dumps(self, arg, proto=0, fast=0):
|
|
f = io.BytesIO()
|
|
p = pickle.Pickler(f, proto)
|
|
if fast:
|
|
p.fast = fast
|
|
p.dump(arg)
|
|
f.seek(0)
|
|
return bytes(f.read())
|
|
|
|
def loads(self, buf):
|
|
f = io.BytesIO(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 = io.BytesIO()
|
|
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 = io.BytesIO(buf)
|
|
u = PersUnpickler(f)
|
|
return u.load()
|
|
|
|
def test_main():
|
|
test_support.run_unittest(
|
|
PickleTests,
|
|
PicklerTests,
|
|
PersPicklerTests
|
|
)
|
|
test_support.run_doctest(pickle)
|
|
|
|
if __name__ == "__main__":
|
|
test_main()
|