(self)
| 688 | support.check_free_after_iterating(self, lambda d: iter(d.items()), self.OrderedDict) |
| 689 | |
| 690 | def test_merge_operator(self): |
| 691 | OrderedDict = self.OrderedDict |
| 692 | |
| 693 | a = OrderedDict({0: 0, 1: 1, 2: 1}) |
| 694 | b = OrderedDict({1: 1, 2: 2, 3: 3}) |
| 695 | |
| 696 | c = a.copy() |
| 697 | d = a.copy() |
| 698 | c |= b |
| 699 | d |= list(b.items()) |
| 700 | expected = OrderedDict({0: 0, 1: 1, 2: 2, 3: 3}) |
| 701 | self.assertEqual(a | dict(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(b | a, expected) |
| 711 | self.assertEqual(c, expected) |
| 712 | |
| 713 | self.assertIs(type(a | b), OrderedDict) |
| 714 | self.assertIs(type(dict(a) | b), OrderedDict) |
| 715 | self.assertIs(type(a | dict(b)), OrderedDict) |
| 716 | |
| 717 | expected = a.copy() |
| 718 | a |= () |
| 719 | a |= "" |
| 720 | self.assertEqual(a, expected) |
| 721 | |
| 722 | with self.assertRaises(TypeError): |
| 723 | a | None |
| 724 | with self.assertRaises(TypeError): |
| 725 | a | () |
| 726 | with self.assertRaises(TypeError): |
| 727 | a | "BAD" |
| 728 | with self.assertRaises(TypeError): |
| 729 | a | "" |
| 730 | with self.assertRaises(ValueError): |
| 731 | a |= "BAD" |
| 732 | |
| 733 | @support.cpython_only |
| 734 | def test_ordered_dict_items_result_gc(self): |
nothing calls this directly
no test coverage detected