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

Method test_merge_operator

Lib/test/test_ordered_dict.py:689–736  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

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):

Callers

nothing calls this directly

Calls 9

copyMethod · 0.95
itemsMethod · 0.95
__ror__Method · 0.95
listClass · 0.85
frozendictClass · 0.85
OrderedDictClass · 0.70
assertEqualMethod · 0.45
assertIsMethod · 0.45
assertRaisesMethod · 0.45

Tested by

no test coverage detected