return x
-class AbstractUnpickleTests(unittest.TestCase):
+class AbstractUnpickleTests:
# Subclass must define self.loads.
_testdata = create_data()
-class AbstractPickleTests(unittest.TestCase):
+class AbstractPickleTests:
# Subclass must define self.dumps, self.loads.
optimized = False
check_array(arr[::2])
-class BigmemPickleTests(unittest.TestCase):
+class BigmemPickleTests:
# Binary protocols can serialize longs of up to 2 GiB-1
self.foo
-class AbstractPickleModuleTests(unittest.TestCase):
+class AbstractPickleModuleTests:
def test_dump_closed_file(self):
f = open(TESTFN, "wb")
self.check_dumps_loads_oob_buffers(dumps, loads)
-class AbstractPersistentPicklerTests(unittest.TestCase):
+class AbstractPersistentPicklerTests:
# This class defines persistent_id() and persistent_load()
# functions that should be used by the pickler. All even integers
self.assertEqual(self.load_false_count, 1)
-class AbstractIdentityPersistentPicklerTests(unittest.TestCase):
+class AbstractIdentityPersistentPicklerTests:
def persistent_id(self, obj):
return obj
self.assertRaises(pickle.UnpicklingError, self.loads, pickled)
-class AbstractPicklerUnpicklerObjectTests(unittest.TestCase):
+class AbstractPicklerUnpicklerObjectTests:
pickler_class = None
unpickler_class = None
return NotImplemented
-class AbstractHookTests(unittest.TestCase):
+class AbstractHookTests:
def test_pickler_hook(self):
# test the ability of a custom, user-defined CPickler subclass to
# override the default reducing routines of any type using the method
self.assertIsNone(wr())
-class AbstractDispatchTableTests(unittest.TestCase):
+class AbstractDispatchTableTests:
def test_default_dispatch_table(self):
# No dispatch_table attribute by default
import warnings
import weakref
+import doctest
import unittest
from test import support
has_c_implementation = False
-class PyPickleTests(AbstractPickleModuleTests):
+class PyPickleTests(AbstractPickleModuleTests, unittest.TestCase):
dump = staticmethod(pickle._dump)
dumps = staticmethod(pickle._dumps)
load = staticmethod(pickle._load)
Unpickler = pickle._Unpickler
-class PyUnpicklerTests(AbstractUnpickleTests):
+class PyUnpicklerTests(AbstractUnpickleTests, unittest.TestCase):
unpickler = pickle._Unpickler
bad_stack_errors = (IndexError,)
return u.load()
-class PyPicklerTests(AbstractPickleTests):
+class PyPicklerTests(AbstractPickleTests, unittest.TestCase):
pickler = pickle._Pickler
unpickler = pickle._Unpickler
class InMemoryPickleTests(AbstractPickleTests, AbstractUnpickleTests,
- BigmemPickleTests):
+ BigmemPickleTests, unittest.TestCase):
bad_stack_errors = (pickle.UnpicklingError, IndexError)
truncated_errors = (pickle.UnpicklingError, EOFError,
class PyPersPicklerTests(AbstractPersistentPicklerTests,
- PersistentPicklerUnpicklerMixin):
+ PersistentPicklerUnpicklerMixin, unittest.TestCase):
pickler = pickle._Pickler
unpickler = pickle._Unpickler
class PyIdPersPicklerTests(AbstractIdentityPersistentPicklerTests,
- PersistentPicklerUnpicklerMixin):
+ PersistentPicklerUnpicklerMixin, unittest.TestCase):
pickler = pickle._Pickler
unpickler = pickle._Unpickler
check(PersUnpickler)
-class PyPicklerUnpicklerObjectTests(AbstractPicklerUnpicklerObjectTests):
+class PyPicklerUnpicklerObjectTests(AbstractPicklerUnpicklerObjectTests, unittest.TestCase):
pickler_class = pickle._Pickler
unpickler_class = pickle._Unpickler
-class PyDispatchTableTests(AbstractDispatchTableTests):
+class PyDispatchTableTests(AbstractDispatchTableTests, unittest.TestCase):
pickler_class = pickle._Pickler
return pickle.dispatch_table.copy()
-class PyChainDispatchTableTests(AbstractDispatchTableTests):
+class PyChainDispatchTableTests(AbstractDispatchTableTests, unittest.TestCase):
pickler_class = pickle._Pickler
return collections.ChainMap({}, pickle.dispatch_table)
-class PyPicklerHookTests(AbstractHookTests):
+class PyPicklerHookTests(AbstractHookTests, unittest.TestCase):
class CustomPyPicklerClass(pickle._Pickler,
AbstractCustomPicklerClass):
pass
if has_c_implementation:
- class CPickleTests(AbstractPickleModuleTests):
+ class CPickleTests(AbstractPickleModuleTests, unittest.TestCase):
from _pickle import dump, dumps, load, loads, Pickler, Unpickler
class CUnpicklerTests(PyUnpicklerTests):
pickler = pickle._Pickler
unpickler = _pickle.Unpickler
- class CPicklerUnpicklerObjectTests(AbstractPicklerUnpicklerObjectTests):
+ class CPicklerUnpicklerObjectTests(AbstractPicklerUnpicklerObjectTests, unittest.TestCase):
pickler_class = _pickle.Pickler
unpickler_class = _pickle.Unpickler
unpickler.memo = {-1: None}
unpickler.memo = {1: None}
- class CDispatchTableTests(AbstractDispatchTableTests):
+ class CDispatchTableTests(AbstractDispatchTableTests, unittest.TestCase):
pickler_class = pickle.Pickler
def get_dispatch_table(self):
return pickle.dispatch_table.copy()
- class CChainDispatchTableTests(AbstractDispatchTableTests):
+ class CChainDispatchTableTests(AbstractDispatchTableTests, unittest.TestCase):
pickler_class = pickle.Pickler
def get_dispatch_table(self):
return collections.ChainMap({}, pickle.dispatch_table)
- class CPicklerHookTests(AbstractHookTests):
+ class CPicklerHookTests(AbstractHookTests, unittest.TestCase):
class CustomCPicklerClass(_pickle.Pickler, AbstractCustomPicklerClass):
pass
pickler_class = CustomCPicklerClass
('multiprocessing.context', name))
-def test_main():
- tests = [PyPickleTests, PyUnpicklerTests, PyPicklerTests,
- PyPersPicklerTests, PyIdPersPicklerTests,
- PyDispatchTableTests, PyChainDispatchTableTests,
- CompatPickleTests, PyPicklerHookTests]
- if has_c_implementation:
- tests.extend([CPickleTests, CUnpicklerTests, CPicklerTests,
- CPersPicklerTests, CIdPersPicklerTests,
- CDumpPickle_LoadPickle, DumpPickle_CLoadPickle,
- PyPicklerUnpicklerObjectTests,
- CPicklerUnpicklerObjectTests,
- CDispatchTableTests, CChainDispatchTableTests,
- CPicklerHookTests,
- InMemoryPickleTests, SizeofTests])
- support.run_unittest(*tests)
- support.run_doctest(pickle)
+def load_tests(loader, tests, pattern):
+ tests.addTest(doctest.DocTestSuite())
+ return tests
+
if __name__ == "__main__":
- test_main()
+ unittest.main()