test_ok1/py/execnet/testing/test_pickle.py

43 lines
859 B
Python

from StringIO import StringIO
def pickletest(mod):
f1 = StringIO()
f2 = StringIO()
pickler1 = mod.Pickler(f1)
unpickler1 = mod.Unpickler(f2)
pickler2 = mod.Pickler(f2)
unpickler2 = mod.Unpickler(f1)
#pickler1.memo = unpickler1.memo = {}
#pickler2.memo = unpickler2.memo = {}
d = {}
pickler1.dump(d)
f1.seek(0)
d_other = unpickler2.load()
# translate unpickler2 memo to pickler2
pickler2.memo = dict([(id(obj), (int(x), obj))
for x, obj in unpickler2.memo.items()])
pickler2.dump(d_other)
f2.seek(0)
unpickler1.memo = dict([(str(x), y) for x, y in pickler1.memo.values()])
d_back = unpickler1.load()
assert d is d_back
def test_cpickle():
import cPickle
pickletest(cPickle)
def test_pickle():
import pickle
pickletest(pickle)