43 lines
859 B
Python
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)
|
|
|