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

Method test_repr

Lib/test/test_str.py:158–200  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

156 self.assertRaises(TypeError, ascii, WithRepr(b'byte-repr'))
157
158 def test_repr(self):
159 # Test basic sanity of repr()
160 self.assertEqual(repr('abc'), "'abc'")
161 self.assertEqual(repr('ab\\c'), "'ab\\\\c'")
162 self.assertEqual(repr('ab\\'), "'ab\\\\'")
163 self.assertEqual(repr('\\c'), "'\\\\c'")
164 self.assertEqual(repr('\\'), "'\\\\'")
165 self.assertEqual(repr('\n'), "'\\n'")
166 self.assertEqual(repr('\r'), "'\\r'")
167 self.assertEqual(repr('\t'), "'\\t'")
168 self.assertEqual(repr('\b'), "'\\x08'")
169 self.assertEqual(repr("'\""), """'\\'"'""")
170 self.assertEqual(repr("'\""), """'\\'"'""")
171 self.assertEqual(repr("'"), '''"'"''')
172 self.assertEqual(repr('"'), """'"'""")
173 latin1repr = (
174 "'\\x00\\x01\\x02\\x03\\x04\\x05\\x06\\x07\\x08\\t\\n\\x0b\\x0c\\r"
175 "\\x0e\\x0f\\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17\\x18\\x19\\x1a"
176 "\\x1b\\x1c\\x1d\\x1e\\x1f !\"#$%&\\'()*+,-./0123456789:;<=>?@ABCDEFGHI"
177 "JKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\\x7f"
178 "\\x80\\x81\\x82\\x83\\x84\\x85\\x86\\x87\\x88\\x89\\x8a\\x8b\\x8c\\x8d"
179 "\\x8e\\x8f\\x90\\x91\\x92\\x93\\x94\\x95\\x96\\x97\\x98\\x99\\x9a\\x9b"
180 "\\x9c\\x9d\\x9e\\x9f\\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9"
181 "\xaa\xab\xac\\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7"
182 "\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5"
183 "\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3"
184 "\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1"
185 "\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef"
186 "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd"
187 "\xfe\xff'")
188 testrepr = repr(''.join(map(chr, range(256))))
189 self.assertEqual(testrepr, latin1repr)
190 # Test repr works on wide unicode escapes without overflow.
191 self.assertEqual(repr("\U00010000" * 39 + "\uffff" * 4096),
192 repr("\U00010000" * 39 + "\uffff" * 4096))
193
194 self.assertTypedEqual(repr('\U0001f40d'), "'\U0001f40d'")
195 self.assertTypedEqual(repr(StrSubclass('abc')), "'abc'")
196 self.assertTypedEqual(repr(WithRepr('<abc>')), '<abc>')
197 self.assertTypedEqual(repr(WithRepr(StrSubclass('<abc>'))), StrSubclass('<abc>'))
198 self.assertTypedEqual(repr(WithRepr('<\U0001f40d>')), '<\U0001f40d>')
199 self.assertTypedEqual(repr(WithRepr(StrSubclass('<\U0001f40d>'))), StrSubclass('<\U0001f40d>'))
200 self.assertRaises(TypeError, repr, WithRepr(b'byte-repr'))
201
202 def test_iterators(self):
203 # Make sure unicode objects have an __iter__ method

Callers

nothing calls this directly

Calls 6

assertTypedEqualMethod · 0.95
StrSubclassClass · 0.70
WithReprClass · 0.70
assertEqualMethod · 0.45
joinMethod · 0.45
assertRaisesMethod · 0.45

Tested by

no test coverage detected