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

Method test_mapping_subclass_repr

Lib/test/test_pprint.py:703–739  ·  view source on GitHub ↗

Test that mapping ABC views use their ._mapping's __repr__.

(self)

Source from the content-addressed store, hash-verified

701 self.assertRaises(AttributeError, pprint.pformat, BMV({}))
702
703 def test_mapping_subclass_repr(self):
704 """Test that mapping ABC views use their ._mapping's __repr__."""
705 class MyMapping(Mapping):
706 def __init__(self, keys=None):
707 self._keys = {} if keys is None else dict.fromkeys(keys)
708
709 def __getitem__(self, item):
710 return self._keys[item]
711
712 def __len__(self):
713 return len(self._keys)
714
715 def __iter__(self):
716 return iter(self._keys)
717
718 def __repr__(self):
719 return f"{self.__class__.__name__}([{', '.join(map(repr, self._keys.keys()))}])"
720
721 m = MyMapping(["test", 1])
722 self.assertEqual(repr(m), "MyMapping(['test', 1])")
723 short_view_repr = "%s(MyMapping(['test', 1]))"
724 self.assertEqual(repr(m.keys()), short_view_repr % "KeysView")
725 self.assertEqual(pprint.pformat(m.items()), short_view_repr % "ItemsView")
726 self.assertEqual(pprint.pformat(m.keys()), short_view_repr % "KeysView")
727 self.assertEqual(pprint.pformat(MappingView(m)), short_view_repr % "MappingView")
728 self.assertEqual(pprint.pformat(m.values()), short_view_repr % "ValuesView")
729
730 alpha = "abcdefghijklmnopqrstuvwxyz"
731 m = MyMapping(alpha)
732 alpha_repr = ", ".join(map(repr, list(alpha)))
733 long_view_repr = "%%s(MyMapping([%s]))" % alpha_repr
734 self.assertEqual(repr(m), "MyMapping([%s])" % alpha_repr)
735 self.assertEqual(repr(m.keys()), long_view_repr % "KeysView")
736 self.assertEqual(pprint.pformat(m.items()), long_view_repr % "ItemsView")
737 self.assertEqual(pprint.pformat(m.keys()), long_view_repr % "KeysView")
738 self.assertEqual(pprint.pformat(MappingView(m)), long_view_repr % "MappingView")
739 self.assertEqual(pprint.pformat(m.values()), long_view_repr % "ValuesView")
740
741 def test_empty_simple_namespace(self):
742 ns = types.SimpleNamespace()

Callers

nothing calls this directly

Calls 9

itemsMethod · 0.95
MappingViewClass · 0.90
listClass · 0.85
pformatMethod · 0.80
MyMappingClass · 0.70
assertEqualMethod · 0.45
keysMethod · 0.45
valuesMethod · 0.45
joinMethod · 0.45

Tested by

no test coverage detected