(self)
| 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 |
nothing calls this directly
no test coverage detected