(self)
| 687 | support.check_free_after_iterating(self, lambda d: iter(d.items()), self.OrderedDict) |
| 688 | |
| 689 | def test_merge_operator(self): |
| 690 | OrderedDict = self.OrderedDict |
| 691 | |
| 692 | a = OrderedDict({0: 0, 1: 1, 2: 1}) |
| 693 | b = OrderedDict({1: 1, 2: 2, 3: 3}) |
| 694 | |
| 695 | c = a.copy() |
| 696 | d = a.copy() |
| 697 | c |= b |
| 698 | d |= list(b.items()) |
| 699 | expected = OrderedDict({0: 0, 1: 1, 2: 2, 3: 3}) |
| 700 | self.assertEqual(a | dict(b), expected) |
| 701 | self.assertEqual(a | frozendict(b), expected) |
| 702 | self.assertEqual(a | b, expected) |
| 703 | self.assertEqual(c, expected) |
| 704 | self.assertEqual(d, expected) |
| 705 | |
| 706 | c = b.copy() |
| 707 | c |= a |
| 708 | expected = OrderedDict({1: 1, 2: 1, 3: 3, 0: 0}) |
| 709 | self.assertEqual(dict(b) | a, expected) |
| 710 | self.assertEqual(frozendict(b) | a, expected) |
| 711 | self.assertEqual(a.__ror__(frozendict(b)), expected) |
| 712 | self.assertEqual(b | a, expected) |
| 713 | self.assertEqual(c, expected) |
| 714 | |
| 715 | self.assertIs(type(a | b), OrderedDict) |
| 716 | self.assertIs(type(dict(a) | b), OrderedDict) |
| 717 | self.assertIs(type(frozendict(a) | b), frozendict) |
| 718 | self.assertIs(type(b.__ror__(frozendict(a))), OrderedDict) |
| 719 | self.assertIs(type(a | dict(b)), OrderedDict) |
| 720 | self.assertIs(type(a | frozendict(b)), OrderedDict) |
| 721 | |
| 722 | expected = a.copy() |
| 723 | a |= () |
| 724 | a |= "" |
| 725 | self.assertEqual(a, expected) |
| 726 | |
| 727 | with self.assertRaises(TypeError): |
| 728 | a | None |
| 729 | with self.assertRaises(TypeError): |
| 730 | a | () |
| 731 | with self.assertRaises(TypeError): |
| 732 | a | "BAD" |
| 733 | with self.assertRaises(TypeError): |
| 734 | a | "" |
| 735 | with self.assertRaises(ValueError): |
| 736 | a |= "BAD" |
| 737 | |
| 738 | @support.cpython_only |
| 739 | def test_ordered_dict_items_result_gc(self): |
nothing calls this directly
no test coverage detected