test_unicode_identifiers.py 984 B

1234567891011121314151617181920212223242526272829303132
  1. import unittest
  2. class PEP3131Test(unittest.TestCase):
  3. def test_valid(self):
  4. class T:
  5. ä = 1
  6. µ = 2 # this is a compatibility character
  7. 蟒 = 3
  8. x󠄀 = 4
  9. self.assertEqual(getattr(T, "\xe4"), 1)
  10. self.assertEqual(getattr(T, "\u03bc"), 2)
  11. self.assertEqual(getattr(T, '\u87d2'), 3)
  12. self.assertEqual(getattr(T, 'x\U000E0100'), 4)
  13. def test_non_bmp_normalized(self):
  14. 𝔘𝔫𝔦𝔠𝔬𝔡𝔢 = 1
  15. self.assertIn("Unicode", dir())
  16. def test_invalid(self):
  17. try:
  18. from test import badsyntax_3131
  19. except SyntaxError as err:
  20. self.assertEqual(str(err),
  21. "invalid character '€' (U+20AC) (badsyntax_3131.py, line 2)")
  22. self.assertEqual(err.lineno, 2)
  23. self.assertEqual(err.offset, 1)
  24. else:
  25. self.fail("expected exception didn't occur")
  26. if __name__ == "__main__":
  27. unittest.main()