(self)
| 567 | # CRASHES haskeystring(NULL, b'a') |
| 568 | |
| 569 | def test_object_setitem(self): |
| 570 | setitem = _testlimitedcapi.object_setitem |
| 571 | dct = {} |
| 572 | setitem(dct, 'a', 5) |
| 573 | self.assertEqual(dct, {'a': 5}) |
| 574 | setitem(dct, '\U0001f40d', 8) |
| 575 | self.assertEqual(dct, {'a': 5, '\U0001f40d': 8}) |
| 576 | |
| 577 | dct = {} |
| 578 | dct2 = ProxySetItem(dct) |
| 579 | setitem(dct2, 'a', 5) |
| 580 | self.assertEqual(dct, {'a': 5}) |
| 581 | |
| 582 | lst = ['a', 'b', 'c'] |
| 583 | setitem(lst, 1, 'x') |
| 584 | self.assertEqual(lst, ['a', 'x', 'c']) |
| 585 | |
| 586 | self.assertRaises(TypeError, setitem, 42, 'a', 5) |
| 587 | self.assertRaises(TypeError, setitem, {}, [], 5) # unhashable |
| 588 | self.assertRaises(SystemError, setitem, {}, NULL, 5) |
| 589 | self.assertRaises(SystemError, setitem, {}, 'a', NULL) |
| 590 | self.assertRaises(IndexError, setitem, [], 1, 5) |
| 591 | self.assertRaises(TypeError, setitem, [], 'a', 5) |
| 592 | self.assertRaises(TypeError, setitem, (), 1, 5) |
| 593 | self.assertRaises(SystemError, setitem, NULL, 'a', 5) |
| 594 | |
| 595 | def test_mapping_setitemstring(self): |
| 596 | setitemstring = _testlimitedcapi.mapping_setitemstring |
nothing calls this directly
no test coverage detected