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

Method test_python_dicts

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

Source from the content-addressed store, hash-verified

408class ClassPropertiesAndMethods(unittest.TestCase):
409
410 def test_python_dicts(self):
411 # Testing Python subclass of dict...
412 self.assertIsSubclass(dict, dict)
413 self.assertIsInstance({}, dict)
414 d = dict()
415 self.assertEqual(d, {})
416 self.assertIs(d.__class__, dict)
417 self.assertIsInstance(d, dict)
418 class C(dict):
419 state = -1
420 def __init__(self_local, *a, **kw):
421 if a:
422 self.assertEqual(len(a), 1)
423 self_local.state = a[0]
424 if kw:
425 for k, v in list(kw.items()):
426 self_local[v] = k
427 def __getitem__(self, key):
428 return self.get(key, 0)
429 def __setitem__(self_local, key, value):
430 self.assertIsInstance(key, int)
431 dict.__setitem__(self_local, key, value)
432 def setstate(self, state):
433 self.state = state
434 def getstate(self):
435 return self.state
436 self.assertIsSubclass(C, dict)
437 a1 = C(12)
438 self.assertEqual(a1.state, 12)
439 a2 = C(foo=1, bar=2)
440 self.assertEqual(a2[1] == 'foo' and a2[2], 'bar')
441 a = C()
442 self.assertEqual(a.state, -1)
443 self.assertEqual(a.getstate(), -1)
444 a.setstate(0)
445 self.assertEqual(a.state, 0)
446 self.assertEqual(a.getstate(), 0)
447 a.setstate(10)
448 self.assertEqual(a.state, 10)
449 self.assertEqual(a.getstate(), 10)
450 self.assertEqual(a[42], 0)
451 a[42] = 24
452 self.assertEqual(a[42], 24)
453 N = 50
454 for i in range(N):
455 a[i] = C()
456 for j in range(N):
457 a[i][j] = i*j
458 for i in range(N):
459 for j in range(N):
460 self.assertEqual(a[i][j], i*j)
461
462 def test_python_lists(self):
463 # Testing Python subclass of list...

Callers

nothing calls this directly

Calls 7

getstateMethod · 0.95
setstateMethod · 0.95
assertIsSubclassMethod · 0.80
assertIsInstanceMethod · 0.80
CClass · 0.70
assertEqualMethod · 0.45
assertIsMethod · 0.45

Tested by

no test coverage detected