Issue #23611: Fixed enums pickling tests. Now all picklings work with all
protocols.
This commit is contained in:
parent
5236e318a5
commit
e50e780234
|
@ -66,18 +66,14 @@ try:
|
||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def test_pickle_dump_load(assertion, source, target=None,
|
def test_pickle_dump_load(assertion, source, target=None):
|
||||||
*, protocol=(0, HIGHEST_PROTOCOL)):
|
|
||||||
start, stop = protocol
|
|
||||||
if target is None:
|
if target is None:
|
||||||
target = source
|
target = source
|
||||||
for protocol in range(start, stop+1):
|
for protocol in range(HIGHEST_PROTOCOL + 1):
|
||||||
assertion(loads(dumps(source, protocol=protocol)), target)
|
assertion(loads(dumps(source, protocol=protocol)), target)
|
||||||
|
|
||||||
def test_pickle_exception(assertion, exception, obj,
|
def test_pickle_exception(assertion, exception, obj):
|
||||||
*, protocol=(0, HIGHEST_PROTOCOL)):
|
for protocol in range(HIGHEST_PROTOCOL + 1):
|
||||||
start, stop = protocol
|
|
||||||
for protocol in range(start, stop+1):
|
|
||||||
with assertion(exception):
|
with assertion(exception):
|
||||||
dumps(obj, protocol=protocol)
|
dumps(obj, protocol=protocol)
|
||||||
|
|
||||||
|
@ -575,11 +571,7 @@ class TestEnum(unittest.TestCase):
|
||||||
|
|
||||||
self.__class__.NestedEnum = NestedEnum
|
self.__class__.NestedEnum = NestedEnum
|
||||||
self.NestedEnum.__qualname__ = '%s.NestedEnum' % self.__class__.__name__
|
self.NestedEnum.__qualname__ = '%s.NestedEnum' % self.__class__.__name__
|
||||||
test_pickle_exception(
|
test_pickle_dump_load(self.assertIs, self.NestedEnum.twigs)
|
||||||
self.assertRaises, PicklingError, self.NestedEnum.twigs,
|
|
||||||
protocol=(0, 3))
|
|
||||||
test_pickle_dump_load(self.assertIs, self.NestedEnum.twigs,
|
|
||||||
protocol=(4, HIGHEST_PROTOCOL))
|
|
||||||
|
|
||||||
def test_pickle_by_name(self):
|
def test_pickle_by_name(self):
|
||||||
class ReplaceGlobalInt(IntEnum):
|
class ReplaceGlobalInt(IntEnum):
|
||||||
|
@ -1096,9 +1088,9 @@ class TestEnum(unittest.TestCase):
|
||||||
globals()['NEI'] = NEI
|
globals()['NEI'] = NEI
|
||||||
NI5 = NamedInt('test', 5)
|
NI5 = NamedInt('test', 5)
|
||||||
self.assertEqual(NI5, 5)
|
self.assertEqual(NI5, 5)
|
||||||
test_pickle_dump_load(self.assertEqual, NI5, 5, protocol=(4, 4))
|
test_pickle_dump_load(self.assertEqual, NI5, 5)
|
||||||
self.assertEqual(NEI.y.value, 2)
|
self.assertEqual(NEI.y.value, 2)
|
||||||
test_pickle_dump_load(self.assertIs, NEI.y, protocol=(4, 4))
|
test_pickle_dump_load(self.assertIs, NEI.y)
|
||||||
test_pickle_dump_load(self.assertIs, NEI)
|
test_pickle_dump_load(self.assertIs, NEI)
|
||||||
|
|
||||||
def test_subclasses_with_reduce(self):
|
def test_subclasses_with_reduce(self):
|
||||||
|
|
Loading…
Reference in New Issue