blob: ed7558a7eec7ba1a9e42c1b5870d70ae74cc75a9 [file] [log] [blame]
Martin v. Löwis47383402007-08-15 07:32:56 +00001import unittest
Benjamin Petersonee8712c2008-05-20 21:35:26 +00002from test import support
Martin v. Löwis47383402007-08-15 07:32:56 +00003
4class PEP3131Test(unittest.TestCase):
5
6 def test_valid(self):
7 class T:
8 ä = 1
9 µ = 2 # this is a compatibility character
10 = 3
Benjamin Petersonf413b802011-08-12 22:17:18 -050011 𝔘𝔫𝔦𝔠𝔬𝔡𝔢 = 4
Ezio Melottib3aedd42010-11-20 19:04:17 +000012 self.assertEqual(getattr(T, "\xe4"), 1)
13 self.assertEqual(getattr(T, "\u03bc"), 2)
14 self.assertEqual(getattr(T, '\u87d2'), 3)
Benjamin Petersonf413b802011-08-12 22:17:18 -050015 v = getattr(T, "\U0001d518\U0001d52b\U0001d526\U0001d520\U0001d52c\U0001d521\U0001d522")
16 self.assertEqual(v, 4)
Martin v. Löwis47383402007-08-15 07:32:56 +000017
18 def test_invalid(self):
19 try:
20 from test import badsyntax_3131
21 except SyntaxError as s:
Ezio Melottib3aedd42010-11-20 19:04:17 +000022 self.assertEqual(str(s),
Martin v. Löwis47383402007-08-15 07:32:56 +000023 "invalid character in identifier (badsyntax_3131.py, line 2)")
24 else:
25 self.fail("expected exception didn't occur")
26
27def test_main():
Benjamin Petersonee8712c2008-05-20 21:35:26 +000028 support.run_unittest(PEP3131Test)
Martin v. Löwis47383402007-08-15 07:32:56 +000029
30if __name__=="__main__":
31 test_main()