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

Method test_setstate

Lib/test/test_functools.py:365–405  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

363 self.assertIsNot(f_copy.keywords['bar'], f.keywords['bar'])
364
365 def test_setstate(self):
366 f = self.partial(signature)
367 f.__setstate__((capture, (1,), dict(a=10), dict(attr=[])))
368
369 self.assertEqual(signature(f),
370 (capture, (1,), dict(a=10), dict(attr=[])))
371 self.assertEqual(f(2, b=20), ((1, 2), {'a': 10, 'b': 20}))
372
373 f.__setstate__((capture, (1,), dict(a=10), None))
374
375 self.assertEqual(signature(f), (capture, (1,), dict(a=10), {}))
376 self.assertEqual(f(2, b=20), ((1, 2), {'a': 10, 'b': 20}))
377
378 f.__setstate__((capture, (1,), None, None))
379 #self.assertEqual(signature(f), (capture, (1,), {}, {}))
380 self.assertEqual(f(2, b=20), ((1, 2), {'b': 20}))
381 self.assertEqual(f(2), ((1, 2), {}))
382 self.assertEqual(f(), ((1,), {}))
383
384 f.__setstate__((capture, (), {}, None))
385 self.assertEqual(signature(f), (capture, (), {}, {}))
386 self.assertEqual(f(2, b=20), ((2,), {'b': 20}))
387 self.assertEqual(f(2), ((2,), {}))
388 self.assertEqual(f(), ((), {}))
389
390 # Set State with placeholders
391 PH = self.module.Placeholder
392 f = self.partial(signature)
393 f.__setstate__((capture, (PH, 1), dict(a=10), dict(attr=[])))
394 self.assertEqual(signature(f), (capture, (PH, 1), dict(a=10), dict(attr=[])))
395 msg_regex = re.escape("missing positional arguments in 'partial' call; "
396 "expected at least 1, got 0")
397 with self.assertRaisesRegex(TypeError, f'^{msg_regex}$') as cm:
398 f()
399 self.assertEqual(f(2), ((2, 1), dict(a=10)))
400
401 # Trailing Placeholder error
402 f = self.partial(signature)
403 msg_regex = re.escape("trailing Placeholders are not allowed")
404 with self.assertRaisesRegex(TypeError, f'^{msg_regex}$') as cm:
405 f.__setstate__((capture, (1, PH), dict(a=10), dict(attr=[])))
406
407 def test_setstate_errors(self):
408 f = self.partial(signature)

Callers

nothing calls this directly

Calls 7

partialMethod · 0.80
escapeMethod · 0.80
assertRaisesRegexMethod · 0.80
signatureFunction · 0.70
fFunction · 0.70
__setstate__Method · 0.45
assertEqualMethod · 0.45

Tested by

no test coverage detected