f = open(TESTFN, "wb")
try:
f.close()
- self.assertRaises(ValueError, pickle.dump, 123, f)
+ self.assertRaises(ValueError, self.dump, 123, f)
finally:
os.remove(TESTFN)
f = open(TESTFN, "wb")
try:
f.close()
- self.assertRaises(ValueError, pickle.dump, 123, f)
+ self.assertRaises(ValueError, self.dump, 123, f)
finally:
os.remove(TESTFN)
def test_load_from_and_dump_to_file(self):
stream = io.BytesIO()
data = [123, {}, 124]
- pickle.dump(data, stream)
+ self.dump(data, stream)
stream.seek(0)
- unpickled = pickle.load(stream)
+ unpickled = self.load(stream)
self.assertEqual(unpickled, data)
def test_highest_protocol(self):
def test_callapi(self):
f = io.BytesIO()
# With and without keyword arguments
- pickle.dump(123, f, -1)
- pickle.dump(123, file=f, protocol=-1)
- pickle.dumps(123, -1)
- pickle.dumps(123, protocol=-1)
- pickle.Pickler(f, -1)
- pickle.Pickler(f, protocol=-1)
+ self.dump(123, f, -1)
+ self.dump(123, file=f, protocol=-1)
+ self.dumps(123, -1)
+ self.dumps(123, protocol=-1)
+ self.Pickler(f, -1)
+ self.Pickler(f, protocol=-1)
def test_bad_init(self):
# Test issue3664 (pickle can segfault from a badly initialized Pickler).
# Override initialization without calling __init__() of the superclass.
- class BadPickler(pickle.Pickler):
+ class BadPickler(self.Pickler):
def __init__(self): pass
- class BadUnpickler(pickle.Unpickler):
+ class BadUnpickler(self.Unpickler):
def __init__(self): pass
self.assertRaises(pickle.PicklingError, BadPickler().dump, 0)
has_c_implementation = False
-class PickleTests(AbstractPickleModuleTests):
- pass
+class PyPickleTests(AbstractPickleModuleTests):
+ dump = staticmethod(pickle._dump)
+ dumps = staticmethod(pickle._dumps)
+ load = staticmethod(pickle._load)
+ loads = staticmethod(pickle._loads)
+ Pickler = pickle._Pickler
+ Unpickler = pickle._Unpickler
class PyUnpicklerTests(AbstractUnpickleTests):
if has_c_implementation:
+ class CPickleTests(AbstractPickleModuleTests):
+ from _pickle import dump, dumps, load, loads, Pickler, Unpickler
+
class CUnpicklerTests(PyUnpicklerTests):
unpickler = _pickle.Unpickler
bad_stack_errors = (pickle.UnpicklingError,)
def test_main():
- tests = [PickleTests, PyUnpicklerTests, PyPicklerTests,
+ tests = [PyPickleTests, PyUnpicklerTests, PyPicklerTests,
PyPersPicklerTests, PyIdPersPicklerTests,
PyDispatchTableTests, PyChainDispatchTableTests,
CompatPickleTests]
if has_c_implementation:
- tests.extend([CUnpicklerTests, CPicklerTests,
+ tests.extend([CPickleTests, CUnpicklerTests, CPicklerTests,
CPersPicklerTests, CIdPersPicklerTests,
CDumpPickle_LoadPickle, DumpPickle_CLoadPickle,
PyPicklerUnpicklerObjectTests,
import pickletools
from test import support
from test.pickletester import AbstractPickleTests
-from test.pickletester import AbstractPickleModuleTests
import unittest
-class OptimizedPickleTests(AbstractPickleTests, AbstractPickleModuleTests):
+class OptimizedPickleTests(AbstractPickleTests):
def dumps(self, arg, proto=None):
return pickletools.optimize(pickle.dumps(arg, proto))