| import unittest | |
| class PEP3131Test(unittest.TestCase): | |
| def test_valid(self): | |
| class T: | |
| รค = 1 | |
| ยต = 2 # this is a compatibility character | |
| ่ = 3 | |
| x๓ = 4 | |
| self.assertEqual(getattr(T, "\xe4"), 1) | |
| self.assertEqual(getattr(T, "\u03bc"), 2) | |
| self.assertEqual(getattr(T, '\u87d2'), 3) | |
| self.assertEqual(getattr(T, 'x\U000E0100'), 4) | |
| def test_non_bmp_normalized(self): | |
| ๐๐ซ๐ฆ๐ ๐ฌ๐ก๐ข = 1 | |
| self.assertIn("Unicode", dir()) | |
| def test_invalid(self): | |
| try: | |
| from test.tokenizedata import badsyntax_3131 # noqa: F401 | |
| except SyntaxError as err: | |
| self.assertEqual(str(err), | |
| "invalid character 'โฌ' (U+20AC) (badsyntax_3131.py, line 2)") | |
| self.assertEqual(err.lineno, 2) | |
| self.assertEqual(err.offset, 1) | |
| else: | |
| self.fail("expected exception didn't occur") | |
| if __name__ == "__main__": | |
| unittest.main() |