Mercurial > cpython-lru_cache-weakref
annotate Lib/test/test_getargs2.py @ 78069:a8aa77458e12 3.2
Add c_size_t and c_ssize_t to the ctypes summary table.
| author | Antoine Pitrou <solipsis@pitrou.net> |
|---|---|
| date | Thu, 12 Jul 2012 20:31:50 +0200 |
| parents | 3c9232a684ae |
| children | 536fccc75f5a |
| rev | line source |
|---|---|
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
1 import unittest |
|
47201
9c930a32cebb
#2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents:
46533
diff
changeset
|
2 from test import support |
|
45548
8c3c5b4eef55
Merged revisions 61038,61042-61045,61047,61050,61053,61055-61056,61061-61062,61066,61068,61070,61081-61095 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45471
diff
changeset
|
3 from _testcapi import getargs_keywords |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
4 |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
5 """ |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
6 > How about the following counterproposal. This also changes some of |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
7 > the other format codes to be a little more regular. |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
8 > |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
9 > Code C type Range check |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
10 > |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
11 > b unsigned char 0..UCHAR_MAX |
|
28668
046bc9d7fb0e
Delete the 'h' test -- 'h' is no longer unsigned so the machinery here
Guido van Rossum <guido@python.org>
parents:
28652
diff
changeset
|
12 > h signed short SHRT_MIN..SHRT_MAX |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
13 > B unsigned char none ** |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
14 > H unsigned short none ** |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
15 > k * unsigned long none |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
16 > I * unsigned int 0..UINT_MAX |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
17 |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
18 |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
19 > i int INT_MIN..INT_MAX |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
20 > l long LONG_MIN..LONG_MAX |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
21 |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
22 > K * unsigned long long none |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
23 > L long long LLONG_MIN..LLONG_MAX |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
24 |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
25 > Notes: |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
26 > |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
27 > * New format codes. |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
28 > |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
29 > ** Changed from previous "range-and-a-half" to "none"; the |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
30 > range-and-a-half checking wasn't particularly useful. |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
31 |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
32 Plus a C API or two, e.g. PyInt_AsLongMask() -> |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
33 unsigned long and PyInt_AsLongLongMask() -> unsigned |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
34 long long (if that exists). |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
35 """ |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
36 |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
37 LARGE = 0x7FFFFFFF |
|
40644
1c26505c1de6
Rip out 'long' and 'L'-suffixed integer literals.
Guido van Rossum <guido@python.org>
parents:
39442
diff
changeset
|
38 VERY_LARGE = 0xFF0000121212121212121242 |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
39 |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
40 from _testcapi import UCHAR_MAX, USHRT_MAX, UINT_MAX, ULONG_MAX, INT_MAX, \ |
|
57822
6d7464dbb714
Merged revisions 76930 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
57582
diff
changeset
|
41 INT_MIN, LONG_MIN, LONG_MAX, PY_SSIZE_T_MIN, PY_SSIZE_T_MAX, \ |
|
6d7464dbb714
Merged revisions 76930 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
57582
diff
changeset
|
42 SHRT_MIN, SHRT_MAX |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
43 |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
44 # fake, they are not defined in Python's header files |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
45 LLONG_MAX = 2**63-1 |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
46 LLONG_MIN = -2**63 |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
47 ULLONG_MAX = 2**64-1 |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
48 |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
49 class Int: |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
50 def __int__(self): |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
51 return 99 |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
52 |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
53 class Unsigned_TestCase(unittest.TestCase): |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
54 def test_b(self): |
|
28776
211c02fb6570
This test now uses the separate getargs_X functions from _testcapimodule.
Thomas Heller <theller@ctypes.org>
parents:
28774
diff
changeset
|
55 from _testcapi import getargs_b |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
56 # b returns 'unsigned char', and does range checking (0 ... UCHAR_MAX) |
|
37741
a67f2158d61b
Fix tests for PyArg_Parse*; The PyArg_Parse functions no longer (noisily)
Thomas Wouters <thomas@python.org>
parents:
34666
diff
changeset
|
57 self.assertRaises(TypeError, getargs_b, 3.14) |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
58 self.assertEqual(99, getargs_b(Int())) |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
59 |
|
28776
211c02fb6570
This test now uses the separate getargs_X functions from _testcapimodule.
Thomas Heller <theller@ctypes.org>
parents:
28774
diff
changeset
|
60 self.assertRaises(OverflowError, getargs_b, -1) |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
61 self.assertEqual(0, getargs_b(0)) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
62 self.assertEqual(UCHAR_MAX, getargs_b(UCHAR_MAX)) |
|
28776
211c02fb6570
This test now uses the separate getargs_X functions from _testcapimodule.
Thomas Heller <theller@ctypes.org>
parents:
28774
diff
changeset
|
63 self.assertRaises(OverflowError, getargs_b, UCHAR_MAX + 1) |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
64 |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
65 self.assertEqual(42, getargs_b(42)) |
|
28776
211c02fb6570
This test now uses the separate getargs_X functions from _testcapimodule.
Thomas Heller <theller@ctypes.org>
parents:
28774
diff
changeset
|
66 self.assertRaises(OverflowError, getargs_b, VERY_LARGE) |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
67 |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
68 def test_B(self): |
|
28776
211c02fb6570
This test now uses the separate getargs_X functions from _testcapimodule.
Thomas Heller <theller@ctypes.org>
parents:
28774
diff
changeset
|
69 from _testcapi import getargs_B |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
70 # B returns 'unsigned char', no range checking |
|
37741
a67f2158d61b
Fix tests for PyArg_Parse*; The PyArg_Parse functions no longer (noisily)
Thomas Wouters <thomas@python.org>
parents:
34666
diff
changeset
|
71 self.assertRaises(TypeError, getargs_B, 3.14) |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
72 self.assertEqual(99, getargs_B(Int())) |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
73 |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
74 self.assertEqual(UCHAR_MAX, getargs_B(-1)) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
75 self.assertEqual(0, getargs_B(0)) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
76 self.assertEqual(UCHAR_MAX, getargs_B(UCHAR_MAX)) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
77 self.assertEqual(0, getargs_B(UCHAR_MAX+1)) |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
78 |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
79 self.assertEqual(42, getargs_B(42)) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
80 self.assertEqual(UCHAR_MAX & VERY_LARGE, getargs_B(VERY_LARGE)) |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
81 |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
82 def test_H(self): |
|
28776
211c02fb6570
This test now uses the separate getargs_X functions from _testcapimodule.
Thomas Heller <theller@ctypes.org>
parents:
28774
diff
changeset
|
83 from _testcapi import getargs_H |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
84 # H returns 'unsigned short', no range checking |
|
37741
a67f2158d61b
Fix tests for PyArg_Parse*; The PyArg_Parse functions no longer (noisily)
Thomas Wouters <thomas@python.org>
parents:
34666
diff
changeset
|
85 self.assertRaises(TypeError, getargs_H, 3.14) |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
86 self.assertEqual(99, getargs_H(Int())) |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
87 |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
88 self.assertEqual(USHRT_MAX, getargs_H(-1)) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
89 self.assertEqual(0, getargs_H(0)) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
90 self.assertEqual(USHRT_MAX, getargs_H(USHRT_MAX)) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
91 self.assertEqual(0, getargs_H(USHRT_MAX+1)) |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
92 |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
93 self.assertEqual(42, getargs_H(42)) |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
94 |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
95 self.assertEqual(VERY_LARGE & USHRT_MAX, getargs_H(VERY_LARGE)) |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
96 |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
97 def test_I(self): |
|
28776
211c02fb6570
This test now uses the separate getargs_X functions from _testcapimodule.
Thomas Heller <theller@ctypes.org>
parents:
28774
diff
changeset
|
98 from _testcapi import getargs_I |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
99 # I returns 'unsigned int', no range checking |
|
37741
a67f2158d61b
Fix tests for PyArg_Parse*; The PyArg_Parse functions no longer (noisily)
Thomas Wouters <thomas@python.org>
parents:
34666
diff
changeset
|
100 self.assertRaises(TypeError, getargs_I, 3.14) |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
101 self.assertEqual(99, getargs_I(Int())) |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
102 |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
103 self.assertEqual(UINT_MAX, getargs_I(-1)) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
104 self.assertEqual(0, getargs_I(0)) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
105 self.assertEqual(UINT_MAX, getargs_I(UINT_MAX)) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
106 self.assertEqual(0, getargs_I(UINT_MAX+1)) |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
107 |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
108 self.assertEqual(42, getargs_I(42)) |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
109 |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
110 self.assertEqual(VERY_LARGE & UINT_MAX, getargs_I(VERY_LARGE)) |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
111 |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
112 def test_k(self): |
|
28776
211c02fb6570
This test now uses the separate getargs_X functions from _testcapimodule.
Thomas Heller <theller@ctypes.org>
parents:
28774
diff
changeset
|
113 from _testcapi import getargs_k |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
114 # k returns 'unsigned long', no range checking |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
115 # it does not accept float, or instances with __int__ |
|
28776
211c02fb6570
This test now uses the separate getargs_X functions from _testcapimodule.
Thomas Heller <theller@ctypes.org>
parents:
28774
diff
changeset
|
116 self.assertRaises(TypeError, getargs_k, 3.14) |
|
211c02fb6570
This test now uses the separate getargs_X functions from _testcapimodule.
Thomas Heller <theller@ctypes.org>
parents:
28774
diff
changeset
|
117 self.assertRaises(TypeError, getargs_k, Int()) |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
118 |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
119 self.assertEqual(ULONG_MAX, getargs_k(-1)) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
120 self.assertEqual(0, getargs_k(0)) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
121 self.assertEqual(ULONG_MAX, getargs_k(ULONG_MAX)) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
122 self.assertEqual(0, getargs_k(ULONG_MAX+1)) |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
123 |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
124 self.assertEqual(42, getargs_k(42)) |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
125 |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
126 self.assertEqual(VERY_LARGE & ULONG_MAX, getargs_k(VERY_LARGE)) |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
127 |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
128 class Signed_TestCase(unittest.TestCase): |
|
57822
6d7464dbb714
Merged revisions 76930 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
57582
diff
changeset
|
129 def test_h(self): |
|
6d7464dbb714
Merged revisions 76930 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
57582
diff
changeset
|
130 from _testcapi import getargs_h |
|
6d7464dbb714
Merged revisions 76930 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
57582
diff
changeset
|
131 # h returns 'short', and does range checking (SHRT_MIN ... SHRT_MAX) |
|
6d7464dbb714
Merged revisions 76930 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
57582
diff
changeset
|
132 self.assertRaises(TypeError, getargs_h, 3.14) |
|
6d7464dbb714
Merged revisions 76930 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
57582
diff
changeset
|
133 self.assertEqual(99, getargs_h(Int())) |
|
6d7464dbb714
Merged revisions 76930 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
57582
diff
changeset
|
134 |
|
6d7464dbb714
Merged revisions 76930 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
57582
diff
changeset
|
135 self.assertRaises(OverflowError, getargs_h, SHRT_MIN-1) |
|
6d7464dbb714
Merged revisions 76930 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
57582
diff
changeset
|
136 self.assertEqual(SHRT_MIN, getargs_h(SHRT_MIN)) |
|
6d7464dbb714
Merged revisions 76930 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
57582
diff
changeset
|
137 self.assertEqual(SHRT_MAX, getargs_h(SHRT_MAX)) |
|
6d7464dbb714
Merged revisions 76930 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
57582
diff
changeset
|
138 self.assertRaises(OverflowError, getargs_h, SHRT_MAX+1) |
|
6d7464dbb714
Merged revisions 76930 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
57582
diff
changeset
|
139 |
|
6d7464dbb714
Merged revisions 76930 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
57582
diff
changeset
|
140 self.assertEqual(42, getargs_h(42)) |
|
6d7464dbb714
Merged revisions 76930 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
57582
diff
changeset
|
141 self.assertRaises(OverflowError, getargs_h, VERY_LARGE) |
|
6d7464dbb714
Merged revisions 76930 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
57582
diff
changeset
|
142 |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
143 def test_i(self): |
|
28776
211c02fb6570
This test now uses the separate getargs_X functions from _testcapimodule.
Thomas Heller <theller@ctypes.org>
parents:
28774
diff
changeset
|
144 from _testcapi import getargs_i |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
145 # i returns 'int', and does range checking (INT_MIN ... INT_MAX) |
|
37741
a67f2158d61b
Fix tests for PyArg_Parse*; The PyArg_Parse functions no longer (noisily)
Thomas Wouters <thomas@python.org>
parents:
34666
diff
changeset
|
146 self.assertRaises(TypeError, getargs_i, 3.14) |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
147 self.assertEqual(99, getargs_i(Int())) |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
148 |
|
28776
211c02fb6570
This test now uses the separate getargs_X functions from _testcapimodule.
Thomas Heller <theller@ctypes.org>
parents:
28774
diff
changeset
|
149 self.assertRaises(OverflowError, getargs_i, INT_MIN-1) |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
150 self.assertEqual(INT_MIN, getargs_i(INT_MIN)) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
151 self.assertEqual(INT_MAX, getargs_i(INT_MAX)) |
|
28776
211c02fb6570
This test now uses the separate getargs_X functions from _testcapimodule.
Thomas Heller <theller@ctypes.org>
parents:
28774
diff
changeset
|
152 self.assertRaises(OverflowError, getargs_i, INT_MAX+1) |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
153 |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
154 self.assertEqual(42, getargs_i(42)) |
|
28776
211c02fb6570
This test now uses the separate getargs_X functions from _testcapimodule.
Thomas Heller <theller@ctypes.org>
parents:
28774
diff
changeset
|
155 self.assertRaises(OverflowError, getargs_i, VERY_LARGE) |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
156 |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
157 def test_l(self): |
|
28776
211c02fb6570
This test now uses the separate getargs_X functions from _testcapimodule.
Thomas Heller <theller@ctypes.org>
parents:
28774
diff
changeset
|
158 from _testcapi import getargs_l |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
159 # l returns 'long', and does range checking (LONG_MIN ... LONG_MAX) |
|
37741
a67f2158d61b
Fix tests for PyArg_Parse*; The PyArg_Parse functions no longer (noisily)
Thomas Wouters <thomas@python.org>
parents:
34666
diff
changeset
|
160 self.assertRaises(TypeError, getargs_l, 3.14) |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
161 self.assertEqual(99, getargs_l(Int())) |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
162 |
|
28776
211c02fb6570
This test now uses the separate getargs_X functions from _testcapimodule.
Thomas Heller <theller@ctypes.org>
parents:
28774
diff
changeset
|
163 self.assertRaises(OverflowError, getargs_l, LONG_MIN-1) |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
164 self.assertEqual(LONG_MIN, getargs_l(LONG_MIN)) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
165 self.assertEqual(LONG_MAX, getargs_l(LONG_MAX)) |
|
28776
211c02fb6570
This test now uses the separate getargs_X functions from _testcapimodule.
Thomas Heller <theller@ctypes.org>
parents:
28774
diff
changeset
|
166 self.assertRaises(OverflowError, getargs_l, LONG_MAX+1) |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
167 |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
168 self.assertEqual(42, getargs_l(42)) |
|
28776
211c02fb6570
This test now uses the separate getargs_X functions from _testcapimodule.
Thomas Heller <theller@ctypes.org>
parents:
28774
diff
changeset
|
169 self.assertRaises(OverflowError, getargs_l, VERY_LARGE) |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
170 |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
37741
diff
changeset
|
171 def test_n(self): |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
37741
diff
changeset
|
172 from _testcapi import getargs_n |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
37741
diff
changeset
|
173 # n returns 'Py_ssize_t', and does range checking |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
37741
diff
changeset
|
174 # (PY_SSIZE_T_MIN ... PY_SSIZE_T_MAX) |
|
37883
72245159299e
Fix newly merged test for p3ykness.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
175 self.assertRaises(TypeError, getargs_n, 3.14) |
|
46533
c0cdacf07f54
Issue 2440: remove the guard around the handling of case 'n' in getargs.c's convertsimple() such that we always treat it as an index type, regardless of whether or not sizeof(size_t) == sizeof(long). Fix the test_args2.Signed_TestCase.test_n() such that it tests for adherence to PEP 357 (don't try and coerce objects that don't have nb_index slots but do have nb_int slots (i.e. floats) into indexes 'just because we can'). Three other commits are related to this one: r62269 and r62279, which were changes to PyNumber_Index (among other things) to check for nb_int slots when we lack nb_index slots -- and r62292, which is when I reverted these changes after various people pointed out that the test was in fact wrong, not the code.
Trent Nelson <trent.nelson@snakebite.org>
parents:
46405
diff
changeset
|
176 self.assertRaises(TypeError, getargs_n, Int()) |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
37741
diff
changeset
|
177 |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
37741
diff
changeset
|
178 self.assertRaises(OverflowError, getargs_n, PY_SSIZE_T_MIN-1) |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
179 self.assertEqual(PY_SSIZE_T_MIN, getargs_n(PY_SSIZE_T_MIN)) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
180 self.assertEqual(PY_SSIZE_T_MAX, getargs_n(PY_SSIZE_T_MAX)) |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
37741
diff
changeset
|
181 self.assertRaises(OverflowError, getargs_n, PY_SSIZE_T_MAX+1) |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
37741
diff
changeset
|
182 |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
183 self.assertEqual(42, getargs_n(42)) |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
37741
diff
changeset
|
184 self.assertRaises(OverflowError, getargs_n, VERY_LARGE) |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
37741
diff
changeset
|
185 |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
186 |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
187 class LongLong_TestCase(unittest.TestCase): |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
188 def test_L(self): |
|
28776
211c02fb6570
This test now uses the separate getargs_X functions from _testcapimodule.
Thomas Heller <theller@ctypes.org>
parents:
28774
diff
changeset
|
189 from _testcapi import getargs_L |
|
58072
78ca69cfc897
Merged revisions 77218 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
57822
diff
changeset
|
190 # L returns 'long long', and does range checking (LLONG_MIN |
|
78ca69cfc897
Merged revisions 77218 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
57822
diff
changeset
|
191 # ... LLONG_MAX) |
|
62221
fe5ed70283ef
Issue #8950: Make PyArg_Parse* with 'L' code raise for float inputs,
Mark Dickinson <dickinsm@gmail.com>
parents:
61717
diff
changeset
|
192 self.assertRaises(TypeError, getargs_L, 3.14) |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
193 self.assertRaises(TypeError, getargs_L, "Hello") |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
194 self.assertEqual(99, getargs_L(Int())) |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
195 |
|
28776
211c02fb6570
This test now uses the separate getargs_X functions from _testcapimodule.
Thomas Heller <theller@ctypes.org>
parents:
28774
diff
changeset
|
196 self.assertRaises(OverflowError, getargs_L, LLONG_MIN-1) |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
197 self.assertEqual(LLONG_MIN, getargs_L(LLONG_MIN)) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
198 self.assertEqual(LLONG_MAX, getargs_L(LLONG_MAX)) |
|
28776
211c02fb6570
This test now uses the separate getargs_X functions from _testcapimodule.
Thomas Heller <theller@ctypes.org>
parents:
28774
diff
changeset
|
199 self.assertRaises(OverflowError, getargs_L, LLONG_MAX+1) |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
200 |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
201 self.assertEqual(42, getargs_L(42)) |
|
28776
211c02fb6570
This test now uses the separate getargs_X functions from _testcapimodule.
Thomas Heller <theller@ctypes.org>
parents:
28774
diff
changeset
|
202 self.assertRaises(OverflowError, getargs_L, VERY_LARGE) |
|
28774
c9bee11eaa8b
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
28668
diff
changeset
|
203 |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
204 def test_K(self): |
|
28776
211c02fb6570
This test now uses the separate getargs_X functions from _testcapimodule.
Thomas Heller <theller@ctypes.org>
parents:
28774
diff
changeset
|
205 from _testcapi import getargs_K |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
206 # K return 'unsigned long long', no range checking |
|
28776
211c02fb6570
This test now uses the separate getargs_X functions from _testcapimodule.
Thomas Heller <theller@ctypes.org>
parents:
28774
diff
changeset
|
207 self.assertRaises(TypeError, getargs_K, 3.14) |
|
211c02fb6570
This test now uses the separate getargs_X functions from _testcapimodule.
Thomas Heller <theller@ctypes.org>
parents:
28774
diff
changeset
|
208 self.assertRaises(TypeError, getargs_K, Int()) |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
209 self.assertEqual(ULLONG_MAX, getargs_K(ULLONG_MAX)) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
210 self.assertEqual(0, getargs_K(0)) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
211 self.assertEqual(0, getargs_K(ULLONG_MAX+1)) |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
212 |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
213 self.assertEqual(42, getargs_K(42)) |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
214 |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
215 self.assertEqual(VERY_LARGE & ULLONG_MAX, getargs_K(VERY_LARGE)) |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
216 |
|
39442
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
37883
diff
changeset
|
217 |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
37883
diff
changeset
|
218 class Tuple_TestCase(unittest.TestCase): |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
37883
diff
changeset
|
219 def test_tuple(self): |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
37883
diff
changeset
|
220 from _testcapi import getargs_tuple |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
37883
diff
changeset
|
221 |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
37883
diff
changeset
|
222 ret = getargs_tuple(1, (2, 3)) |
|
66340
2beb25369289
Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
55593
diff
changeset
|
223 self.assertEqual(ret, (1,2,3)) |
|
39442
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
37883
diff
changeset
|
224 |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
37883
diff
changeset
|
225 # make sure invalid tuple arguments are handled correctly |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
37883
diff
changeset
|
226 class seq: |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
37883
diff
changeset
|
227 def __len__(self): |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
37883
diff
changeset
|
228 return 2 |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
37883
diff
changeset
|
229 def __getitem__(self, n): |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
37883
diff
changeset
|
230 raise ValueError |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
37883
diff
changeset
|
231 self.assertRaises(TypeError, getargs_tuple, 1, seq()) |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
37883
diff
changeset
|
232 |
|
45548
8c3c5b4eef55
Merged revisions 61038,61042-61045,61047,61050,61053,61055-61056,61061-61062,61066,61068,61070,61081-61095 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45471
diff
changeset
|
233 class Keywords_TestCase(unittest.TestCase): |
|
8c3c5b4eef55
Merged revisions 61038,61042-61045,61047,61050,61053,61055-61056,61061-61062,61066,61068,61070,61081-61095 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45471
diff
changeset
|
234 def test_positional_args(self): |
|
8c3c5b4eef55
Merged revisions 61038,61042-61045,61047,61050,61053,61055-61056,61061-61062,61066,61068,61070,61081-61095 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45471
diff
changeset
|
235 # using all positional args |
|
66340
2beb25369289
Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
55593
diff
changeset
|
236 self.assertEqual( |
|
45548
8c3c5b4eef55
Merged revisions 61038,61042-61045,61047,61050,61053,61055-61056,61061-61062,61066,61068,61070,61081-61095 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45471
diff
changeset
|
237 getargs_keywords((1,2), 3, (4,(5,6)), (7,8,9), 10), |
|
8c3c5b4eef55
Merged revisions 61038,61042-61045,61047,61050,61053,61055-61056,61061-61062,61066,61068,61070,61081-61095 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45471
diff
changeset
|
238 (1, 2, 3, 4, 5, 6, 7, 8, 9, 10) |
|
8c3c5b4eef55
Merged revisions 61038,61042-61045,61047,61050,61053,61055-61056,61061-61062,61066,61068,61070,61081-61095 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45471
diff
changeset
|
239 ) |
|
61717
1504cc5a15a1
Issue #6697: Fix a crash if a keyword contains a surrogate
Victor Stinner <victor.stinner@haypocalc.com>
parents:
58072
diff
changeset
|
240 |
|
45548
8c3c5b4eef55
Merged revisions 61038,61042-61045,61047,61050,61053,61055-61056,61061-61062,61066,61068,61070,61081-61095 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45471
diff
changeset
|
241 def test_mixed_args(self): |
|
8c3c5b4eef55
Merged revisions 61038,61042-61045,61047,61050,61053,61055-61056,61061-61062,61066,61068,61070,61081-61095 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45471
diff
changeset
|
242 # positional and keyword args |
|
66340
2beb25369289
Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
55593
diff
changeset
|
243 self.assertEqual( |
|
45548
8c3c5b4eef55
Merged revisions 61038,61042-61045,61047,61050,61053,61055-61056,61061-61062,61066,61068,61070,61081-61095 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45471
diff
changeset
|
244 getargs_keywords((1,2), 3, (4,(5,6)), arg4=(7,8,9), arg5=10), |
|
8c3c5b4eef55
Merged revisions 61038,61042-61045,61047,61050,61053,61055-61056,61061-61062,61066,61068,61070,61081-61095 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45471
diff
changeset
|
245 (1, 2, 3, 4, 5, 6, 7, 8, 9, 10) |
|
8c3c5b4eef55
Merged revisions 61038,61042-61045,61047,61050,61053,61055-61056,61061-61062,61066,61068,61070,61081-61095 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45471
diff
changeset
|
246 ) |
|
61717
1504cc5a15a1
Issue #6697: Fix a crash if a keyword contains a surrogate
Victor Stinner <victor.stinner@haypocalc.com>
parents:
58072
diff
changeset
|
247 |
|
45548
8c3c5b4eef55
Merged revisions 61038,61042-61045,61047,61050,61053,61055-61056,61061-61062,61066,61068,61070,61081-61095 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45471
diff
changeset
|
248 def test_keyword_args(self): |
|
8c3c5b4eef55
Merged revisions 61038,61042-61045,61047,61050,61053,61055-61056,61061-61062,61066,61068,61070,61081-61095 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45471
diff
changeset
|
249 # all keywords |
|
66340
2beb25369289
Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
55593
diff
changeset
|
250 self.assertEqual( |
|
45548
8c3c5b4eef55
Merged revisions 61038,61042-61045,61047,61050,61053,61055-61056,61061-61062,61066,61068,61070,61081-61095 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45471
diff
changeset
|
251 getargs_keywords(arg1=(1,2), arg2=3, arg3=(4,(5,6)), arg4=(7,8,9), arg5=10), |
|
8c3c5b4eef55
Merged revisions 61038,61042-61045,61047,61050,61053,61055-61056,61061-61062,61066,61068,61070,61081-61095 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45471
diff
changeset
|
252 (1, 2, 3, 4, 5, 6, 7, 8, 9, 10) |
|
8c3c5b4eef55
Merged revisions 61038,61042-61045,61047,61050,61053,61055-61056,61061-61062,61066,61068,61070,61081-61095 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45471
diff
changeset
|
253 ) |
|
61717
1504cc5a15a1
Issue #6697: Fix a crash if a keyword contains a surrogate
Victor Stinner <victor.stinner@haypocalc.com>
parents:
58072
diff
changeset
|
254 |
|
45548
8c3c5b4eef55
Merged revisions 61038,61042-61045,61047,61050,61053,61055-61056,61061-61062,61066,61068,61070,61081-61095 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45471
diff
changeset
|
255 def test_optional_args(self): |
|
8c3c5b4eef55
Merged revisions 61038,61042-61045,61047,61050,61053,61055-61056,61061-61062,61066,61068,61070,61081-61095 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45471
diff
changeset
|
256 # missing optional keyword args, skipping tuples |
|
66340
2beb25369289
Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
55593
diff
changeset
|
257 self.assertEqual( |
|
45548
8c3c5b4eef55
Merged revisions 61038,61042-61045,61047,61050,61053,61055-61056,61061-61062,61066,61068,61070,61081-61095 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45471
diff
changeset
|
258 getargs_keywords(arg1=(1,2), arg2=3, arg5=10), |
|
8c3c5b4eef55
Merged revisions 61038,61042-61045,61047,61050,61053,61055-61056,61061-61062,61066,61068,61070,61081-61095 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45471
diff
changeset
|
259 (1, 2, 3, -1, -1, -1, -1, -1, -1, 10) |
|
8c3c5b4eef55
Merged revisions 61038,61042-61045,61047,61050,61053,61055-61056,61061-61062,61066,61068,61070,61081-61095 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45471
diff
changeset
|
260 ) |
|
61717
1504cc5a15a1
Issue #6697: Fix a crash if a keyword contains a surrogate
Victor Stinner <victor.stinner@haypocalc.com>
parents:
58072
diff
changeset
|
261 |
|
45548
8c3c5b4eef55
Merged revisions 61038,61042-61045,61047,61050,61053,61055-61056,61061-61062,61066,61068,61070,61081-61095 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45471
diff
changeset
|
262 def test_required_args(self): |
|
8c3c5b4eef55
Merged revisions 61038,61042-61045,61047,61050,61053,61055-61056,61061-61062,61066,61068,61070,61081-61095 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45471
diff
changeset
|
263 # required arg missing |
|
8c3c5b4eef55
Merged revisions 61038,61042-61045,61047,61050,61053,61055-61056,61061-61062,61066,61068,61070,61081-61095 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45471
diff
changeset
|
264 try: |
|
8c3c5b4eef55
Merged revisions 61038,61042-61045,61047,61050,61053,61055-61056,61061-61062,61066,61068,61070,61081-61095 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45471
diff
changeset
|
265 getargs_keywords(arg1=(1,2)) |
|
8c3c5b4eef55
Merged revisions 61038,61042-61045,61047,61050,61053,61055-61056,61061-61062,61066,61068,61070,61081-61095 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45471
diff
changeset
|
266 except TypeError as err: |
|
66340
2beb25369289
Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
55593
diff
changeset
|
267 self.assertEqual(str(err), "Required argument 'arg2' (pos 2) not found") |
|
45548
8c3c5b4eef55
Merged revisions 61038,61042-61045,61047,61050,61053,61055-61056,61061-61062,61066,61068,61070,61081-61095 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45471
diff
changeset
|
268 else: |
|
8c3c5b4eef55
Merged revisions 61038,61042-61045,61047,61050,61053,61055-61056,61061-61062,61066,61068,61070,61081-61095 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45471
diff
changeset
|
269 self.fail('TypeError should have been raised') |
|
61717
1504cc5a15a1
Issue #6697: Fix a crash if a keyword contains a surrogate
Victor Stinner <victor.stinner@haypocalc.com>
parents:
58072
diff
changeset
|
270 |
|
45548
8c3c5b4eef55
Merged revisions 61038,61042-61045,61047,61050,61053,61055-61056,61061-61062,61066,61068,61070,61081-61095 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45471
diff
changeset
|
271 def test_too_many_args(self): |
|
8c3c5b4eef55
Merged revisions 61038,61042-61045,61047,61050,61053,61055-61056,61061-61062,61066,61068,61070,61081-61095 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45471
diff
changeset
|
272 try: |
|
8c3c5b4eef55
Merged revisions 61038,61042-61045,61047,61050,61053,61055-61056,61061-61062,61066,61068,61070,61081-61095 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45471
diff
changeset
|
273 getargs_keywords((1,2),3,(4,(5,6)),(7,8,9),10,111) |
|
8c3c5b4eef55
Merged revisions 61038,61042-61045,61047,61050,61053,61055-61056,61061-61062,61066,61068,61070,61081-61095 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45471
diff
changeset
|
274 except TypeError as err: |
|
66340
2beb25369289
Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
55593
diff
changeset
|
275 self.assertEqual(str(err), "function takes at most 5 arguments (6 given)") |
|
45548
8c3c5b4eef55
Merged revisions 61038,61042-61045,61047,61050,61053,61055-61056,61061-61062,61066,61068,61070,61081-61095 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45471
diff
changeset
|
276 else: |
|
8c3c5b4eef55
Merged revisions 61038,61042-61045,61047,61050,61053,61055-61056,61061-61062,61066,61068,61070,61081-61095 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45471
diff
changeset
|
277 self.fail('TypeError should have been raised') |
|
61717
1504cc5a15a1
Issue #6697: Fix a crash if a keyword contains a surrogate
Victor Stinner <victor.stinner@haypocalc.com>
parents:
58072
diff
changeset
|
278 |
|
45548
8c3c5b4eef55
Merged revisions 61038,61042-61045,61047,61050,61053,61055-61056,61061-61062,61066,61068,61070,61081-61095 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45471
diff
changeset
|
279 def test_invalid_keyword(self): |
|
8c3c5b4eef55
Merged revisions 61038,61042-61045,61047,61050,61053,61055-61056,61061-61062,61066,61068,61070,61081-61095 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45471
diff
changeset
|
280 # extraneous keyword arg |
|
8c3c5b4eef55
Merged revisions 61038,61042-61045,61047,61050,61053,61055-61056,61061-61062,61066,61068,61070,61081-61095 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45471
diff
changeset
|
281 try: |
|
8c3c5b4eef55
Merged revisions 61038,61042-61045,61047,61050,61053,61055-61056,61061-61062,61066,61068,61070,61081-61095 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45471
diff
changeset
|
282 getargs_keywords((1,2),3,arg5=10,arg666=666) |
|
8c3c5b4eef55
Merged revisions 61038,61042-61045,61047,61050,61053,61055-61056,61061-61062,61066,61068,61070,61081-61095 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45471
diff
changeset
|
283 except TypeError as err: |
|
66340
2beb25369289
Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
55593
diff
changeset
|
284 self.assertEqual(str(err), "'arg666' is an invalid keyword argument for this function") |
|
45548
8c3c5b4eef55
Merged revisions 61038,61042-61045,61047,61050,61053,61055-61056,61061-61062,61066,61068,61070,61081-61095 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45471
diff
changeset
|
285 else: |
|
8c3c5b4eef55
Merged revisions 61038,61042-61045,61047,61050,61053,61055-61056,61061-61062,61066,61068,61070,61081-61095 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45471
diff
changeset
|
286 self.fail('TypeError should have been raised') |
|
39442
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
37883
diff
changeset
|
287 |
|
61717
1504cc5a15a1
Issue #6697: Fix a crash if a keyword contains a surrogate
Victor Stinner <victor.stinner@haypocalc.com>
parents:
58072
diff
changeset
|
288 def test_surrogate_keyword(self): |
|
1504cc5a15a1
Issue #6697: Fix a crash if a keyword contains a surrogate
Victor Stinner <victor.stinner@haypocalc.com>
parents:
58072
diff
changeset
|
289 try: |
|
1504cc5a15a1
Issue #6697: Fix a crash if a keyword contains a surrogate
Victor Stinner <victor.stinner@haypocalc.com>
parents:
58072
diff
changeset
|
290 getargs_keywords((1,2), 3, (4,(5,6)), (7,8,9), **{'\uDC80': 10}) |
|
1504cc5a15a1
Issue #6697: Fix a crash if a keyword contains a surrogate
Victor Stinner <victor.stinner@haypocalc.com>
parents:
58072
diff
changeset
|
291 except TypeError as err: |
|
66310
9fe76c26ea9f
#9424: Replace deprecated assert* methods in the Python test suite.
Ezio Melotti <ezio.melotti@gmail.com>
parents:
62484
diff
changeset
|
292 self.assertEqual(str(err), "'\udc80' is an invalid keyword argument for this function") |
|
61717
1504cc5a15a1
Issue #6697: Fix a crash if a keyword contains a surrogate
Victor Stinner <victor.stinner@haypocalc.com>
parents:
58072
diff
changeset
|
293 else: |
|
1504cc5a15a1
Issue #6697: Fix a crash if a keyword contains a surrogate
Victor Stinner <victor.stinner@haypocalc.com>
parents:
58072
diff
changeset
|
294 self.fail('TypeError should have been raised') |
|
1504cc5a15a1
Issue #6697: Fix a crash if a keyword contains a surrogate
Victor Stinner <victor.stinner@haypocalc.com>
parents:
58072
diff
changeset
|
295 |
|
62322
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
296 class Bytes_TestCase(unittest.TestCase): |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
297 def test_s(self): |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
298 from _testcapi import getargs_s |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
299 self.assertEqual(getargs_s('abc\xe9'), b'abc\xc3\xa9') |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
300 self.assertRaises(TypeError, getargs_s, 'nul:\0') |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
301 self.assertRaises(TypeError, getargs_s, b'bytes') |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
302 self.assertRaises(TypeError, getargs_s, bytearray(b'bytearray')) |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
303 self.assertRaises(TypeError, getargs_s, memoryview(b'memoryview')) |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
304 self.assertRaises(TypeError, getargs_s, None) |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
305 |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
306 def test_s_star(self): |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
307 from _testcapi import getargs_s_star |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
308 self.assertEqual(getargs_s_star('abc\xe9'), b'abc\xc3\xa9') |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
309 self.assertEqual(getargs_s_star('nul:\0'), b'nul:\0') |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
310 self.assertEqual(getargs_s_star(b'bytes'), b'bytes') |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
311 self.assertEqual(getargs_s_star(bytearray(b'bytearray')), b'bytearray') |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
312 self.assertEqual(getargs_s_star(memoryview(b'memoryview')), b'memoryview') |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
313 self.assertRaises(TypeError, getargs_s_star, None) |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
314 |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
315 def test_s_hash(self): |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
316 from _testcapi import getargs_s_hash |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
317 self.assertEqual(getargs_s_hash('abc\xe9'), b'abc\xc3\xa9') |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
318 self.assertEqual(getargs_s_hash('nul:\0'), b'nul:\0') |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
319 self.assertEqual(getargs_s_hash(b'bytes'), b'bytes') |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
320 self.assertRaises(TypeError, getargs_s_hash, bytearray(b'bytearray')) |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
321 self.assertRaises(TypeError, getargs_s_hash, memoryview(b'memoryview')) |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
322 self.assertRaises(TypeError, getargs_s_hash, None) |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
323 |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
324 def test_z(self): |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
325 from _testcapi import getargs_z |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
326 self.assertEqual(getargs_z('abc\xe9'), b'abc\xc3\xa9') |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
327 self.assertRaises(TypeError, getargs_z, 'nul:\0') |
|
62476
5d538d1e7098
Issue #8949: "z" format of PyArg_Parse*() functions doesn't accept bytes
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62322
diff
changeset
|
328 self.assertRaises(TypeError, getargs_z, b'bytes') |
|
62322
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
329 self.assertRaises(TypeError, getargs_z, bytearray(b'bytearray')) |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
330 self.assertRaises(TypeError, getargs_z, memoryview(b'memoryview')) |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
331 self.assertIsNone(getargs_z(None)) |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
332 |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
333 def test_z_star(self): |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
334 from _testcapi import getargs_z_star |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
335 self.assertEqual(getargs_z_star('abc\xe9'), b'abc\xc3\xa9') |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
336 self.assertEqual(getargs_z_star('nul:\0'), b'nul:\0') |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
337 self.assertEqual(getargs_z_star(b'bytes'), b'bytes') |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
338 self.assertEqual(getargs_z_star(bytearray(b'bytearray')), b'bytearray') |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
339 self.assertEqual(getargs_z_star(memoryview(b'memoryview')), b'memoryview') |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
340 self.assertIsNone(getargs_z_star(None)) |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
341 |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
342 def test_z_hash(self): |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
343 from _testcapi import getargs_z_hash |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
344 self.assertEqual(getargs_z_hash('abc\xe9'), b'abc\xc3\xa9') |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
345 self.assertEqual(getargs_z_hash('nul:\0'), b'nul:\0') |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
346 self.assertEqual(getargs_z_hash(b'bytes'), b'bytes') |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
347 self.assertRaises(TypeError, getargs_z_hash, bytearray(b'bytearray')) |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
348 self.assertRaises(TypeError, getargs_z_hash, memoryview(b'memoryview')) |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
349 self.assertIsNone(getargs_z_hash(None)) |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
350 |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
351 def test_y(self): |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
352 from _testcapi import getargs_y |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
353 self.assertRaises(TypeError, getargs_y, 'abc\xe9') |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
354 self.assertEqual(getargs_y(b'bytes'), b'bytes') |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
355 self.assertRaises(TypeError, getargs_y, b'nul:\0') |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
356 self.assertRaises(TypeError, getargs_y, bytearray(b'bytearray')) |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
357 self.assertRaises(TypeError, getargs_y, memoryview(b'memoryview')) |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
358 self.assertRaises(TypeError, getargs_y, None) |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
359 |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
360 def test_y_star(self): |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
361 from _testcapi import getargs_y_star |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
362 self.assertRaises(TypeError, getargs_y_star, 'abc\xe9') |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
363 self.assertEqual(getargs_y_star(b'bytes'), b'bytes') |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
364 self.assertEqual(getargs_y_star(b'nul:\0'), b'nul:\0') |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
365 self.assertEqual(getargs_y_star(bytearray(b'bytearray')), b'bytearray') |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
366 self.assertEqual(getargs_y_star(memoryview(b'memoryview')), b'memoryview') |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
367 self.assertRaises(TypeError, getargs_y_star, None) |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
368 |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
369 def test_y_hash(self): |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
370 from _testcapi import getargs_y_hash |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
371 self.assertRaises(TypeError, getargs_y_hash, 'abc\xe9') |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
372 self.assertEqual(getargs_y_hash(b'bytes'), b'bytes') |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
373 self.assertEqual(getargs_y_hash(b'nul:\0'), b'nul:\0') |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
374 self.assertRaises(TypeError, getargs_y_hash, bytearray(b'bytearray')) |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
375 self.assertRaises(TypeError, getargs_y_hash, memoryview(b'memoryview')) |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
376 self.assertRaises(TypeError, getargs_y_hash, None) |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
377 |
|
62484
bcc0e825faa0
Issue #8850: Remove "w" and "w#" formats from PyArg_Parse*() functions, use
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62476
diff
changeset
|
378 def test_w_star(self): |
|
bcc0e825faa0
Issue #8850: Remove "w" and "w#" formats from PyArg_Parse*() functions, use
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62476
diff
changeset
|
379 # getargs_w_star() modifies first and last byte |
|
bcc0e825faa0
Issue #8850: Remove "w" and "w#" formats from PyArg_Parse*() functions, use
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62476
diff
changeset
|
380 from _testcapi import getargs_w_star |
|
bcc0e825faa0
Issue #8850: Remove "w" and "w#" formats from PyArg_Parse*() functions, use
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62476
diff
changeset
|
381 self.assertRaises(TypeError, getargs_w_star, 'abc\xe9') |
|
bcc0e825faa0
Issue #8850: Remove "w" and "w#" formats from PyArg_Parse*() functions, use
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62476
diff
changeset
|
382 self.assertRaises(TypeError, getargs_w_star, b'bytes') |
|
bcc0e825faa0
Issue #8850: Remove "w" and "w#" formats from PyArg_Parse*() functions, use
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62476
diff
changeset
|
383 self.assertRaises(TypeError, getargs_w_star, b'nul:\0') |
|
67675
fc5d02ae52dd
Issue #10451: memoryview objects could allow to mutate a readable buffer.
Antoine Pitrou <solipsis@pitrou.net>
parents:
66310
diff
changeset
|
384 self.assertRaises(TypeError, getargs_w_star, memoryview(b'bytes')) |
|
62484
bcc0e825faa0
Issue #8850: Remove "w" and "w#" formats from PyArg_Parse*() functions, use
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62476
diff
changeset
|
385 self.assertEqual(getargs_w_star(bytearray(b'bytearray')), b'[ytearra]') |
|
67675
fc5d02ae52dd
Issue #10451: memoryview objects could allow to mutate a readable buffer.
Antoine Pitrou <solipsis@pitrou.net>
parents:
66310
diff
changeset
|
386 self.assertEqual(getargs_w_star(memoryview(bytearray(b'memoryview'))), |
|
fc5d02ae52dd
Issue #10451: memoryview objects could allow to mutate a readable buffer.
Antoine Pitrou <solipsis@pitrou.net>
parents:
66310
diff
changeset
|
387 b'[emoryvie]') |
|
62484
bcc0e825faa0
Issue #8850: Remove "w" and "w#" formats from PyArg_Parse*() functions, use
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62476
diff
changeset
|
388 self.assertRaises(TypeError, getargs_w_star, None) |
|
bcc0e825faa0
Issue #8850: Remove "w" and "w#" formats from PyArg_Parse*() functions, use
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62476
diff
changeset
|
389 |
|
62322
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
390 |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
391 class Unicode_TestCase(unittest.TestCase): |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
392 def test_u(self): |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
393 from _testcapi import getargs_u |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
394 self.assertEqual(getargs_u('abc\xe9'), 'abc\xe9') |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
395 self.assertRaises(TypeError, getargs_u, 'nul:\0') |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
396 self.assertRaises(TypeError, getargs_u, b'bytes') |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
397 self.assertRaises(TypeError, getargs_u, bytearray(b'bytearray')) |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
398 self.assertRaises(TypeError, getargs_u, memoryview(b'memoryview')) |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
399 self.assertRaises(TypeError, getargs_u, None) |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
400 |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
401 def test_u_hash(self): |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
402 from _testcapi import getargs_u_hash |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
403 self.assertEqual(getargs_u_hash('abc\xe9'), 'abc\xe9') |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
404 self.assertEqual(getargs_u_hash('nul:\0'), 'nul:\0') |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
405 self.assertRaises(TypeError, getargs_u_hash, b'bytes') |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
406 self.assertRaises(TypeError, getargs_u_hash, bytearray(b'bytearray')) |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
407 self.assertRaises(TypeError, getargs_u_hash, memoryview(b'memoryview')) |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
408 self.assertRaises(TypeError, getargs_u_hash, None) |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
409 |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
410 def test_Z(self): |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
411 from _testcapi import getargs_Z |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
412 self.assertEqual(getargs_Z('abc\xe9'), 'abc\xe9') |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
413 self.assertRaises(TypeError, getargs_Z, 'nul:\0') |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
414 self.assertRaises(TypeError, getargs_Z, b'bytes') |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
415 self.assertRaises(TypeError, getargs_Z, bytearray(b'bytearray')) |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
416 self.assertRaises(TypeError, getargs_Z, memoryview(b'memoryview')) |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
417 self.assertIsNone(getargs_Z(None)) |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
418 |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
419 def test_Z_hash(self): |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
420 from _testcapi import getargs_Z_hash |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
421 self.assertEqual(getargs_Z_hash('abc\xe9'), 'abc\xe9') |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
422 self.assertEqual(getargs_Z_hash('nul:\0'), 'nul:\0') |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
423 self.assertRaises(TypeError, getargs_Z_hash, b'bytes') |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
424 self.assertRaises(TypeError, getargs_Z_hash, bytearray(b'bytearray')) |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
425 self.assertRaises(TypeError, getargs_Z_hash, memoryview(b'memoryview')) |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
426 self.assertIsNone(getargs_Z_hash(None)) |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
427 |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
428 |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
429 def test_main(): |
|
62322
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
430 tests = [ |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
431 Signed_TestCase, |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
432 Unsigned_TestCase, |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
433 Tuple_TestCase, |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
434 Keywords_TestCase, |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
435 Bytes_TestCase, |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
436 Unicode_TestCase, |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
437 ] |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
438 try: |
|
28776
211c02fb6570
This test now uses the separate getargs_X functions from _testcapimodule.
Thomas Heller <theller@ctypes.org>
parents:
28774
diff
changeset
|
439 from _testcapi import getargs_L, getargs_K |
|
211c02fb6570
This test now uses the separate getargs_X functions from _testcapimodule.
Thomas Heller <theller@ctypes.org>
parents:
28774
diff
changeset
|
440 except ImportError: |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
441 pass # PY_LONG_LONG not available |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
442 else: |
|
28917
1741af48fd9f
Combine the functionality of test_support.run_unittest()
Walter Dörwald <walter@livinglogic.de>
parents:
28776
diff
changeset
|
443 tests.append(LongLong_TestCase) |
|
47201
9c930a32cebb
#2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents:
46533
diff
changeset
|
444 support.run_unittest(*tests) |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
445 |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
446 if __name__ == "__main__": |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
447 test_main() |
