annotate Lib/test/test_stringprep.py @ 74006:88198b93ff2f

Issue #13560: Add PyUnicode_EncodeLocale() * Use PyUnicode_EncodeLocale() in time.strftime() if wcsftime() is not available * Document my last changes in Misc/NEWS
author Victor Stinner <victor.stinner@haypocalc.com>
date Sat, 17 Dec 2011 04:13:41 +0100
parents 0bb232078b8c
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
28692
06d137a427e9 New file.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1 # To fully test this module, we would need a copy of the stringprep tables.
06d137a427e9 New file.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2 # Since we don't have them, this test checks only a few codepoints.
06d137a427e9 New file.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3
41554
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 38453
diff changeset
4 import unittest
47201
9c930a32cebb #2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents: 41575
diff changeset
5 from test import support
28692
06d137a427e9 New file.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6
06d137a427e9 New file.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7 from stringprep import *
06d137a427e9 New file.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
8
41554
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 38453
diff changeset
9 class StringprepTests(unittest.TestCase):
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 38453
diff changeset
10 def test(self):
55593
0bb232078b8c Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents: 47201
diff changeset
11 self.assertTrue(in_table_a1("\u0221"))
0bb232078b8c Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents: 47201
diff changeset
12 self.assertFalse(in_table_a1("\u0222"))
28692
06d137a427e9 New file.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
13
55593
0bb232078b8c Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents: 47201
diff changeset
14 self.assertTrue(in_table_b1("\u00ad"))
0bb232078b8c Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents: 47201
diff changeset
15 self.assertFalse(in_table_b1("\u00ae"))
28692
06d137a427e9 New file.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
16
55593
0bb232078b8c Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents: 47201
diff changeset
17 self.assertTrue(map_table_b2("\u0041"), "\u0061")
0bb232078b8c Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents: 47201
diff changeset
18 self.assertTrue(map_table_b2("\u0061"), "\u0061")
41554
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 38453
diff changeset
19
55593
0bb232078b8c Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents: 47201
diff changeset
20 self.assertTrue(map_table_b3("\u0041"), "\u0061")
0bb232078b8c Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents: 47201
diff changeset
21 self.assertTrue(map_table_b3("\u0061"), "\u0061")
28692
06d137a427e9 New file.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
22
55593
0bb232078b8c Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents: 47201
diff changeset
23 self.assertTrue(in_table_c11("\u0020"))
0bb232078b8c Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents: 47201
diff changeset
24 self.assertFalse(in_table_c11("\u0021"))
28692
06d137a427e9 New file.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
25
55593
0bb232078b8c Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents: 47201
diff changeset
26 self.assertTrue(in_table_c12("\u00a0"))
0bb232078b8c Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents: 47201
diff changeset
27 self.assertFalse(in_table_c12("\u00a1"))
28692
06d137a427e9 New file.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
28
55593
0bb232078b8c Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents: 47201
diff changeset
29 self.assertTrue(in_table_c12("\u00a0"))
0bb232078b8c Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents: 47201
diff changeset
30 self.assertFalse(in_table_c12("\u00a1"))
41554
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 38453
diff changeset
31
55593
0bb232078b8c Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents: 47201
diff changeset
32 self.assertTrue(in_table_c11_c12("\u00a0"))
0bb232078b8c Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents: 47201
diff changeset
33 self.assertFalse(in_table_c11_c12("\u00a1"))
28692
06d137a427e9 New file.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
34
55593
0bb232078b8c Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents: 47201
diff changeset
35 self.assertTrue(in_table_c21("\u001f"))
0bb232078b8c Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents: 47201
diff changeset
36 self.assertFalse(in_table_c21("\u0020"))
28692
06d137a427e9 New file.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
37
55593
0bb232078b8c Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents: 47201
diff changeset
38 self.assertTrue(in_table_c22("\u009f"))
0bb232078b8c Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents: 47201
diff changeset
39 self.assertFalse(in_table_c22("\u00a0"))
28692
06d137a427e9 New file.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
40
55593
0bb232078b8c Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents: 47201
diff changeset
41 self.assertTrue(in_table_c21_c22("\u009f"))
0bb232078b8c Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents: 47201
diff changeset
42 self.assertFalse(in_table_c21_c22("\u00a0"))
28692
06d137a427e9 New file.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
43
55593
0bb232078b8c Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents: 47201
diff changeset
44 self.assertTrue(in_table_c3("\ue000"))
0bb232078b8c Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents: 47201
diff changeset
45 self.assertFalse(in_table_c3("\uf900"))
28692
06d137a427e9 New file.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
46
55593
0bb232078b8c Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents: 47201
diff changeset
47 self.assertTrue(in_table_c4("\uffff"))
0bb232078b8c Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents: 47201
diff changeset
48 self.assertFalse(in_table_c4("\u0000"))
28692
06d137a427e9 New file.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
49
55593
0bb232078b8c Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents: 47201
diff changeset
50 self.assertTrue(in_table_c5("\ud800"))
0bb232078b8c Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents: 47201
diff changeset
51 self.assertFalse(in_table_c5("\ud7ff"))
28692
06d137a427e9 New file.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
52
55593
0bb232078b8c Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents: 47201
diff changeset
53 self.assertTrue(in_table_c6("\ufff9"))
0bb232078b8c Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents: 47201
diff changeset
54 self.assertFalse(in_table_c6("\ufffe"))
28692
06d137a427e9 New file.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
55
55593
0bb232078b8c Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents: 47201
diff changeset
56 self.assertTrue(in_table_c7("\u2ff0"))
0bb232078b8c Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents: 47201
diff changeset
57 self.assertFalse(in_table_c7("\u2ffc"))
28692
06d137a427e9 New file.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
58
55593
0bb232078b8c Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents: 47201
diff changeset
59 self.assertTrue(in_table_c8("\u0340"))
0bb232078b8c Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents: 47201
diff changeset
60 self.assertFalse(in_table_c8("\u0342"))
28692
06d137a427e9 New file.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
61
41554
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 38453
diff changeset
62 # C.9 is not in the bmp
55593
0bb232078b8c Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents: 47201
diff changeset
63 # self.assertTrue(in_table_c9(u"\U000E0001"))
0bb232078b8c Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents: 47201
diff changeset
64 # self.assertFalse(in_table_c8(u"\U000E0002"))
28692
06d137a427e9 New file.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
65
55593
0bb232078b8c Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents: 47201
diff changeset
66 self.assertTrue(in_table_d1("\u05be"))
0bb232078b8c Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents: 47201
diff changeset
67 self.assertFalse(in_table_d1("\u05bf"))
28692
06d137a427e9 New file.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
68
55593
0bb232078b8c Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents: 47201
diff changeset
69 self.assertTrue(in_table_d2("\u0041"))
0bb232078b8c Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents: 47201
diff changeset
70 self.assertFalse(in_table_d2("\u0040"))
28692
06d137a427e9 New file.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
71
41554
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 38453
diff changeset
72 # This would generate a hash of all predicates. However, running
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 38453
diff changeset
73 # it is quite expensive, and only serves to detect changes in the
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 38453
diff changeset
74 # unicode database. Instead, stringprep.py asserts the version of
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 38453
diff changeset
75 # the database.
28692
06d137a427e9 New file.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
76
41554
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 38453
diff changeset
77 # import hashlib
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 38453
diff changeset
78 # predicates = [k for k in dir(stringprep) if k.startswith("in_table")]
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 38453
diff changeset
79 # predicates.sort()
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 38453
diff changeset
80 # for p in predicates:
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 38453
diff changeset
81 # f = getattr(stringprep, p)
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 38453
diff changeset
82 # # Collect all BMP code points
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 38453
diff changeset
83 # data = ["0"] * 0x10000
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 38453
diff changeset
84 # for i in range(0x10000):
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 38453
diff changeset
85 # if f(unichr(i)):
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 38453
diff changeset
86 # data[i] = "1"
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 38453
diff changeset
87 # data = "".join(data)
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 38453
diff changeset
88 # h = hashlib.sha1()
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 38453
diff changeset
89 # h.update(data)
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 38453
diff changeset
90 # print p, h.hexdigest()
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 38453
diff changeset
91
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 38453
diff changeset
92 def test_main():
47201
9c930a32cebb #2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents: 41575
diff changeset
93 support.run_unittest(StringprepTests)
41554
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 38453
diff changeset
94
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 38453
diff changeset
95 if __name__ == '__main__':
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 38453
diff changeset
96 test_main()