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

Method test_reduce

Lib/test/test_descr.py:5579–5700  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

5577 self.assertEqual(obj.__reduce__(), reduce_value)
5578
5579 def test_reduce(self):
5580 protocols = range(pickle.HIGHEST_PROTOCOL + 1)
5581 args = (-101, "spam")
5582 kwargs = {'bacon': -201, 'fish': -301}
5583 state = {'cheese': -401}
5584
5585 class C1:
5586 def __getnewargs__(self):
5587 return args
5588 obj = C1()
5589 for proto in protocols:
5590 self._check_reduce(proto, obj, args)
5591
5592 for name, value in state.items():
5593 setattr(obj, name, value)
5594 for proto in protocols:
5595 self._check_reduce(proto, obj, args, state=state)
5596
5597 class C2:
5598 def __getnewargs__(self):
5599 return "bad args"
5600 obj = C2()
5601 for proto in protocols:
5602 if proto >= 2:
5603 with self.assertRaises(TypeError):
5604 obj.__reduce_ex__(proto)
5605
5606 class C3:
5607 def __getnewargs_ex__(self):
5608 return (args, kwargs)
5609 obj = C3()
5610 for proto in protocols:
5611 if proto >= 2:
5612 self._check_reduce(proto, obj, args, kwargs)
5613
5614 class C4:
5615 def __getnewargs_ex__(self):
5616 return (args, "bad dict")
5617 class C5:
5618 def __getnewargs_ex__(self):
5619 return ("bad tuple", kwargs)
5620 class C6:
5621 def __getnewargs_ex__(self):
5622 return ()
5623 class C7:
5624 def __getnewargs_ex__(self):
5625 return "bad args"
5626 for proto in protocols:
5627 for cls in C4, C5, C6, C7:
5628 obj = cls()
5629 if proto >= 2:
5630 with self.assertRaises((TypeError, ValueError)):
5631 obj.__reduce_ex__(proto)
5632
5633 class C9:
5634 def __getnewargs_ex__(self):
5635 return (args, {})
5636 obj = C9()

Callers

nothing calls this directly

Calls 15

_check_reduceMethod · 0.95
C9Class · 0.85
C10Class · 0.85
C11Class · 0.85
C12Class · 0.85
C13Class · 0.85
C14Class · 0.85
C15Class · 0.85
C16Class · 0.85
listClass · 0.85
C1Class · 0.70
C2Class · 0.70

Tested by

no test coverage detected