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

Method test_setdefault

Lib/test/test_dict.py:475–500  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

473 self.assertRaises(TypeError, d.get, None, None, None)
474
475 def test_setdefault(self):
476 # dict.setdefault()
477 d = {}
478 self.assertIs(d.setdefault('key0'), None)
479 d.setdefault('key0', [])
480 self.assertIs(d.setdefault('key0'), None)
481 d.setdefault('key', []).append(3)
482 self.assertEqual(d['key'][0], 3)
483 d.setdefault('key', []).append(4)
484 self.assertEqual(len(d['key']), 2)
485 self.assertRaises(TypeError, d.setdefault)
486
487 class Exc(Exception): pass
488
489 class BadHash(object):
490 fail = False
491 def __hash__(self):
492 if self.fail:
493 raise Exc()
494 else:
495 return 42
496
497 x = BadHash()
498 d[x] = 42
499 x.fail = True
500 self.assertRaises(Exc, d.setdefault, x, [])
501
502 def test_setdefault_atomic(self):
503 # Issue #13521: setdefault() calls __hash__ and __eq__ only once.

Callers

nothing calls this directly

Calls 7

lenFunction · 0.85
BadHashClass · 0.70
assertIsMethod · 0.45
setdefaultMethod · 0.45
appendMethod · 0.45
assertEqualMethod · 0.45
assertRaisesMethod · 0.45

Tested by

no test coverage detected