MCPcopy Index your code
hub / github.com/RustPython/RustPython / test_reduce

Method test_reduce

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

Source from the content-addressed store, hash-verified

5340 self.assertEqual(obj.__reduce__(), reduce_value)
5341
5342 def test_reduce(self):
5343 protocols = range(pickle.HIGHEST_PROTOCOL + 1)
5344 args = (-101, "spam")
5345 kwargs = {'bacon': -201, 'fish': -301}
5346 state = {'cheese': -401}
5347
5348 class C1:
5349 def __getnewargs__(self):
5350 return args
5351 obj = C1()
5352 for proto in protocols:
5353 self._check_reduce(proto, obj, args)
5354
5355 for name, value in state.items():
5356 setattr(obj, name, value)
5357 for proto in protocols:
5358 self._check_reduce(proto, obj, args, state=state)
5359
5360 class C2:
5361 def __getnewargs__(self):
5362 return "bad args"
5363 obj = C2()
5364 for proto in protocols:
5365 if proto >= 2:
5366 with self.assertRaises(TypeError):
5367 obj.__reduce_ex__(proto)
5368
5369 class C3:
5370 def __getnewargs_ex__(self):
5371 return (args, kwargs)
5372 obj = C3()
5373 for proto in protocols:
5374 if proto >= 2:
5375 self._check_reduce(proto, obj, args, kwargs)
5376
5377 class C4:
5378 def __getnewargs_ex__(self):
5379 return (args, "bad dict")
5380 class C5:
5381 def __getnewargs_ex__(self):
5382 return ("bad tuple", kwargs)
5383 class C6:
5384 def __getnewargs_ex__(self):
5385 return ()
5386 class C7:
5387 def __getnewargs_ex__(self):
5388 return "bad args"
5389 for proto in protocols:
5390 for cls in C4, C5, C6, C7:
5391 obj = cls()
5392 if proto >= 2:
5393 with self.assertRaises((TypeError, ValueError)):
5394 obj.__reduce_ex__(proto)
5395
5396 class C9:
5397 def __getnewargs_ex__(self):
5398 return (args, {})
5399 obj = C9()

Callers

nothing calls this directly

Calls 15

_check_reduceMethod · 0.95
setattrFunction · 0.85
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

Tested by

no test coverage detected