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

Method test_sort_unorderable_values

Lib/test/test_pprint.py:1042–1068  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

1040 self.assertEqual(pprint.pformat(nested_list, depth=1), lv1_list)
1041
1042 def test_sort_unorderable_values(self):
1043 # Issue 3976: sorted pprints fail for unorderable values.
1044 n = 20
1045 keys = [Unorderable() for i in range(n)]
1046 random.shuffle(keys)
1047 skeys = sorted(keys, key=id)
1048 clean = lambda s: s.replace(' ', '').replace('\n','')
1049
1050 self.assertEqual(clean(pprint.pformat(set(keys))),
1051 '{' + ','.join(map(repr, skeys)) + '}')
1052 self.assertEqual(clean(pprint.pformat(frozenset(keys))),
1053 'frozenset({' + ','.join(map(repr, skeys)) + '})')
1054 self.assertEqual(clean(pprint.pformat(dict.fromkeys(keys))),
1055 '{' + ','.join('%r:None' % k for k in skeys) + '}')
1056 self.assertEqual(clean(pprint.pformat(dict.fromkeys(keys).keys())),
1057 'dict_keys([' + ','.join('%r' % k for k in skeys) + '])')
1058 self.assertEqual(clean(pprint.pformat(dict.fromkeys(keys).items())),
1059 'dict_items([' + ','.join('(%r,None)' % k for k in skeys) + '])')
1060
1061 # Issue 10017: TypeError on user-defined types as dict keys.
1062 self.assertEqual(pprint.pformat({Unorderable: 0, 1: 0}),
1063 '{1: 0, ' + repr(Unorderable) +': 0}')
1064
1065 # Issue 14998: TypeError on tuples with NoneTypes as dict keys.
1066 keys = [(1,), (None,)]
1067 self.assertEqual(pprint.pformat(dict.fromkeys(keys, 0)),
1068 '{%r: 0, %r: 0}' % tuple(sorted(keys, key=id)))
1069
1070 def test_sort_orderable_and_unorderable_values(self):
1071 # Issue 22721: sorted pprints is not stable

Callers

nothing calls this directly

Calls 11

UnorderableClass · 0.85
setFunction · 0.85
shuffleMethod · 0.80
pformatMethod · 0.80
cleanFunction · 0.50
replaceMethod · 0.45
assertEqualMethod · 0.45
joinMethod · 0.45
fromkeysMethod · 0.45
keysMethod · 0.45
itemsMethod · 0.45

Tested by

no test coverage detected