(self, proto, obj, args=(), kwargs={}, state=None,
listitems=None, dictitems=None)
| 5547 | class 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) |
no test coverage detected