MCPcopy Index your code
hub / github.com/python/cpython / _check_reduce

Method _check_reduce

Lib/test/test_descr.py:5549–5577  ·  view source on GitHub ↗
(self, proto, obj, args=(), kwargs={}, state=None,
                      listitems=None, dictitems=None)

Source from the content-addressed store, hash-verified

5547class PicklingTests(unittest.TestCase):
5548
5549 def _check_reduce(self, proto, obj, args=(), kwargs={}, state=None,
5550 listitems=None, dictitems=None):
5551 if proto >= 2:
5552 reduce_value = obj.__reduce_ex__(proto)
5553 if kwargs:
5554 self.assertEqual(reduce_value[0], copyreg.__newobj_ex__)
5555 self.assertEqual(reduce_value[1], (type(obj), args, kwargs))
5556 else:
5557 self.assertEqual(reduce_value[0], copyreg.__newobj__)
5558 self.assertEqual(reduce_value[1], (type(obj),) + args)
5559 self.assertEqual(reduce_value[2], state)
5560 if listitems is not None:
5561 self.assertListEqual(list(reduce_value[3]), listitems)
5562 else:
5563 self.assertIsNone(reduce_value[3])
5564 if dictitems is not None:
5565 self.assertDictEqual(dict(reduce_value[4]), dictitems)
5566 else:
5567 self.assertIsNone(reduce_value[4])
5568 else:
5569 base_type = type(obj).__base__
5570 reduce_value = (copyreg._reconstructor,
5571 (type(obj),
5572 base_type,
5573 None if base_type is object else base_type(obj)))
5574 if state is not None:
5575 reduce_value += (state,)
5576 self.assertEqual(obj.__reduce_ex__(proto), reduce_value)
5577 self.assertEqual(obj.__reduce__(), reduce_value)
5578
5579 def test_reduce(self):
5580 protocols = range(pickle.HIGHEST_PROTOCOL + 1)

Callers 2

test_reduceMethod · 0.95

Calls 7

listClass · 0.85
assertListEqualMethod · 0.80
assertIsNoneMethod · 0.80
assertDictEqualMethod · 0.80
__reduce_ex__Method · 0.45
assertEqualMethod · 0.45
__reduce__Method · 0.45

Tested by

no test coverage detected