(self, proto, obj, args=(), kwargs={}, state=None,
listitems=None, dictitems=None)
| 5310 | class PicklingTests(unittest.TestCase): |
| 5311 | |
| 5312 | def _check_reduce(self, proto, obj, args=(), kwargs={}, state=None, |
| 5313 | listitems=None, dictitems=None): |
| 5314 | if proto >= 2: |
| 5315 | reduce_value = obj.__reduce_ex__(proto) |
| 5316 | if kwargs: |
| 5317 | self.assertEqual(reduce_value[0], copyreg.__newobj_ex__) |
| 5318 | self.assertEqual(reduce_value[1], (type(obj), args, kwargs)) |
| 5319 | else: |
| 5320 | self.assertEqual(reduce_value[0], copyreg.__newobj__) |
| 5321 | self.assertEqual(reduce_value[1], (type(obj),) + args) |
| 5322 | self.assertEqual(reduce_value[2], state) |
| 5323 | if listitems is not None: |
| 5324 | self.assertListEqual(list(reduce_value[3]), listitems) |
| 5325 | else: |
| 5326 | self.assertIsNone(reduce_value[3]) |
| 5327 | if dictitems is not None: |
| 5328 | self.assertDictEqual(dict(reduce_value[4]), dictitems) |
| 5329 | else: |
| 5330 | self.assertIsNone(reduce_value[4]) |
| 5331 | else: |
| 5332 | base_type = type(obj).__base__ |
| 5333 | reduce_value = (copyreg._reconstructor, |
| 5334 | (type(obj), |
| 5335 | base_type, |
| 5336 | None if base_type is object else base_type(obj))) |
| 5337 | if state is not None: |
| 5338 | reduce_value += (state,) |
| 5339 | self.assertEqual(obj.__reduce_ex__(proto), reduce_value) |
| 5340 | self.assertEqual(obj.__reduce__(), reduce_value) |
| 5341 | |
| 5342 | def test_reduce(self): |
| 5343 | protocols = range(pickle.HIGHEST_PROTOCOL + 1) |
no test coverage detected