Mercurial > cpython-lru_cache-weakref
annotate Lib/test/test_getargs2.py @ 87690:66c1c9f32567 default tip
Add use_weakref option to functools.lru_cache
The use_weakref option makes lru_cache create weak references to the function
arguments when creating the cache key, which prevents them from staying in the
memory forever even after all other references to them are gone.
This is a proof of concept for http://bugs.python.org/issue19859
| author | Radomir Dopieralski <devel@sheep.art.pl> |
|---|---|
| date | Tue, 03 Dec 2013 16:02:48 +0100 |
| parents | 05f7883ee92d |
| children |
| 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 |
|
75842
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
3 from _testcapi import getargs_keywords, getargs_keyword_only |
|
84108
05f7883ee92d
Update various test modules to use unittest.main() for test discovery
Brett Cannon <brett@python.org>
parents:
82957
diff
changeset
|
4 try: |
|
05f7883ee92d
Update various test modules to use unittest.main() for test discovery
Brett Cannon <brett@python.org>
parents:
82957
diff
changeset
|
5 from _testcapi import getargs_L, getargs_K |
|
05f7883ee92d
Update various test modules to use unittest.main() for test discovery
Brett Cannon <brett@python.org>
parents:
82957
diff
changeset
|
6 except ImportError: |
|
05f7883ee92d
Update various test modules to use unittest.main() for test discovery
Brett Cannon <brett@python.org>
parents:
82957
diff
changeset
|
7 getargs_L = None # PY_LONG_LONG not available |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
8 |
|
82957
313bcff51900
Issue #17516: use comment syntax for comments, instead of multiline string
Victor Stinner <victor.stinner@gmail.com>
parents:
76776
diff
changeset
|
9 # > How about the following counterproposal. This also changes some of |
|
313bcff51900
Issue #17516: use comment syntax for comments, instead of multiline string
Victor Stinner <victor.stinner@gmail.com>
parents:
76776
diff
changeset
|
10 # > the other format codes to be a little more regular. |
|
313bcff51900
Issue #17516: use comment syntax for comments, instead of multiline string
Victor Stinner <victor.stinner@gmail.com>
parents:
76776
diff
changeset
|
11 # > |
|
313bcff51900
Issue #17516: use comment syntax for comments, instead of multiline string
Victor Stinner <victor.stinner@gmail.com>
parents:
76776
diff
changeset
|
12 # > Code C type Range check |
|
313bcff51900
Issue #17516: use comment syntax for comments, instead of multiline string
Victor Stinner <victor.stinner@gmail.com>
parents:
76776
diff
changeset
|
13 # > |
|
313bcff51900
Issue #17516: use comment syntax for comments, instead of multiline string
Victor Stinner <victor.stinner@gmail.com>
parents:
76776
diff
changeset
|
14 # > b unsigned char 0..UCHAR_MAX |
|
313bcff51900
Issue #17516: use comment syntax for comments, instead of multiline string
Victor Stinner <victor.stinner@gmail.com>
parents:
76776
diff
changeset
|
15 # > h signed short SHRT_MIN..SHRT_MAX |
|
313bcff51900
Issue #17516: use comment syntax for comments, instead of multiline string
Victor Stinner <victor.stinner@gmail.com>
parents:
76776
diff
changeset
|
16 # > B unsigned char none ** |
|
313bcff51900
Issue #17516: use comment syntax for comments, instead of multiline string
Victor Stinner <victor.stinner@gmail.com>
parents:
76776
diff
changeset
|
17 # > H unsigned short none ** |
|
313bcff51900
Issue #17516: use comment syntax for comments, instead of multiline string
Victor Stinner <victor.stinner@gmail.com>
parents:
76776
diff
changeset
|
18 # > k * unsigned long none |
|
313bcff51900
Issue #17516: use comment syntax for comments, instead of multiline string
Victor Stinner <victor.stinner@gmail.com>
parents:
76776
diff
changeset
|
19 # > I * unsigned int 0..UINT_MAX |
|
313bcff51900
Issue #17516: use comment syntax for comments, instead of multiline string
Victor Stinner <victor.stinner@gmail.com>
parents:
76776
diff
changeset
|
20 # |
|
313bcff51900
Issue #17516: use comment syntax for comments, instead of multiline string
Victor Stinner <victor.stinner@gmail.com>
parents:
76776
diff
changeset
|
21 # |
|
313bcff51900
Issue #17516: use comment syntax for comments, instead of multiline string
Victor Stinner <victor.stinner@gmail.com>
parents:
76776
diff
changeset
|
22 # > i int INT_MIN..INT_MAX |
|
313bcff51900
Issue #17516: use comment syntax for comments, instead of multiline string
Victor Stinner <victor.stinner@gmail.com>
parents:
76776
diff
changeset
|
23 # > l long LONG_MIN..LONG_MAX |
|
313bcff51900
Issue #17516: use comment syntax for comments, instead of multiline string
Victor Stinner <victor.stinner@gmail.com>
parents:
76776
diff
changeset
|
24 # |
|
313bcff51900
Issue #17516: use comment syntax for comments, instead of multiline string
Victor Stinner <victor.stinner@gmail.com>
parents:
76776
diff
changeset
|
25 # > K * unsigned long long none |
|
313bcff51900
Issue #17516: use comment syntax for comments, instead of multiline string
Victor Stinner <victor.stinner@gmail.com>
parents:
76776
diff
changeset
|
26 # > L long long LLONG_MIN..LLONG_MAX |
|
313bcff51900
Issue #17516: use comment syntax for comments, instead of multiline string
Victor Stinner <victor.stinner@gmail.com>
parents:
76776
diff
changeset
|
27 # |
|
313bcff51900
Issue #17516: use comment syntax for comments, instead of multiline string
Victor Stinner <victor.stinner@gmail.com>
parents:
76776
diff
changeset
|
28 # > Notes: |
|
313bcff51900
Issue #17516: use comment syntax for comments, instead of multiline string
Victor Stinner <victor.stinner@gmail.com>
parents:
76776
diff
changeset
|
29 # > |
|
313bcff51900
Issue #17516: use comment syntax for comments, instead of multiline string
Victor Stinner <victor.stinner@gmail.com>
parents:
76776
diff
changeset
|
30 # > * New format codes. |
|
313bcff51900
Issue #17516: use comment syntax for comments, instead of multiline string
Victor Stinner <victor.stinner@gmail.com>
parents:
76776
diff
changeset
|
31 # > |
|
313bcff51900
Issue #17516: use comment syntax for comments, instead of multiline string
Victor Stinner <victor.stinner@gmail.com>
parents:
76776
diff
changeset
|
32 # > ** Changed from previous "range-and-a-half" to "none"; the |
|
313bcff51900
Issue #17516: use comment syntax for comments, instead of multiline string
Victor Stinner <victor.stinner@gmail.com>
parents:
76776
diff
changeset
|
33 # > range-and-a-half checking wasn't particularly useful. |
|
313bcff51900
Issue #17516: use comment syntax for comments, instead of multiline string
Victor Stinner <victor.stinner@gmail.com>
parents:
76776
diff
changeset
|
34 # |
|
313bcff51900
Issue #17516: use comment syntax for comments, instead of multiline string
Victor Stinner <victor.stinner@gmail.com>
parents:
76776
diff
changeset
|
35 # Plus a C API or two, e.g. PyInt_AsLongMask() -> |
|
313bcff51900
Issue #17516: use comment syntax for comments, instead of multiline string
Victor Stinner <victor.stinner@gmail.com>
parents:
76776
diff
changeset
|
36 # unsigned long and PyInt_AsLongLongMask() -> unsigned |
|
313bcff51900
Issue #17516: use comment syntax for comments, instead of multiline string
Victor Stinner <victor.stinner@gmail.com>
parents:
76776
diff
changeset
|
37 # long long (if that exists). |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
38 |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
39 LARGE = 0x7FFFFFFF |
|
40644
1c26505c1de6
Rip out 'long' and 'L'-suffixed integer literals.
Guido van Rossum <guido@python.org>
parents:
39442
diff
changeset
|
40 VERY_LARGE = 0xFF0000121212121212121242 |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
41 |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
42 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
|
43 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
|
44 SHRT_MIN, SHRT_MAX |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
45 |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
46 # 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
|
47 LLONG_MAX = 2**63-1 |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
48 LLONG_MIN = -2**63 |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
49 ULLONG_MAX = 2**64-1 |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
50 |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
51 class Int: |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
52 def __int__(self): |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
53 return 99 |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
54 |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
55 class Unsigned_TestCase(unittest.TestCase): |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
56 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
|
57 from _testcapi import getargs_b |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
58 # 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
|
59 self.assertRaises(TypeError, getargs_b, 3.14) |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
60 self.assertEqual(99, getargs_b(Int())) |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
61 |
|
28776
211c02fb6570
This test now uses the separate getargs_X functions from _testcapimodule.
Thomas Heller <theller@ctypes.org>
parents:
28774
diff
changeset
|
62 self.assertRaises(OverflowError, getargs_b, -1) |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
63 self.assertEqual(0, getargs_b(0)) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
64 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
|
65 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
|
66 |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
67 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
|
68 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
|
69 |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
70 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
|
71 from _testcapi import getargs_B |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
72 # 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
|
73 self.assertRaises(TypeError, getargs_B, 3.14) |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
74 self.assertEqual(99, getargs_B(Int())) |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
75 |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
76 self.assertEqual(UCHAR_MAX, getargs_B(-1)) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
77 self.assertEqual(0, getargs_B(0)) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
78 self.assertEqual(UCHAR_MAX, getargs_B(UCHAR_MAX)) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
79 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
|
80 |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
81 self.assertEqual(42, getargs_B(42)) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
82 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
|
83 |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
84 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
|
85 from _testcapi import getargs_H |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
86 # 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
|
87 self.assertRaises(TypeError, getargs_H, 3.14) |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
88 self.assertEqual(99, getargs_H(Int())) |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
89 |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
90 self.assertEqual(USHRT_MAX, getargs_H(-1)) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
91 self.assertEqual(0, getargs_H(0)) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
92 self.assertEqual(USHRT_MAX, getargs_H(USHRT_MAX)) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
93 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
|
94 |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
95 self.assertEqual(42, getargs_H(42)) |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
96 |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
97 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
|
98 |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
99 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
|
100 from _testcapi import getargs_I |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
101 # 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
|
102 self.assertRaises(TypeError, getargs_I, 3.14) |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
103 self.assertEqual(99, getargs_I(Int())) |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
104 |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
105 self.assertEqual(UINT_MAX, getargs_I(-1)) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
106 self.assertEqual(0, getargs_I(0)) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
107 self.assertEqual(UINT_MAX, getargs_I(UINT_MAX)) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
108 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
|
109 |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
110 self.assertEqual(42, getargs_I(42)) |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
111 |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
112 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
|
113 |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
114 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
|
115 from _testcapi import getargs_k |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
116 # k returns 'unsigned long', no range checking |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
117 # 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
|
118 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
|
119 self.assertRaises(TypeError, getargs_k, Int()) |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
120 |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
121 self.assertEqual(ULONG_MAX, getargs_k(-1)) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
122 self.assertEqual(0, getargs_k(0)) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
123 self.assertEqual(ULONG_MAX, getargs_k(ULONG_MAX)) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
124 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
|
125 |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
126 self.assertEqual(42, getargs_k(42)) |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
127 |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
128 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
|
129 |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
130 class Signed_TestCase(unittest.TestCase): |
|
57822
6d7464dbb714
Merged revisions 76930 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
57582
diff
changeset
|
131 def test_h(self): |
|
6d7464dbb714
Merged revisions 76930 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
57582
diff
changeset
|
132 from _testcapi import getargs_h |
|
6d7464dbb714
Merged revisions 76930 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
57582
diff
changeset
|
133 # 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
|
134 self.assertRaises(TypeError, getargs_h, 3.14) |
|
6d7464dbb714
Merged revisions 76930 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
57582
diff
changeset
|
135 self.assertEqual(99, getargs_h(Int())) |
|
6d7464dbb714
Merged revisions 76930 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
57582
diff
changeset
|
136 |
|
6d7464dbb714
Merged revisions 76930 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
57582
diff
changeset
|
137 self.assertRaises(OverflowError, getargs_h, SHRT_MIN-1) |
|
6d7464dbb714
Merged revisions 76930 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
57582
diff
changeset
|
138 self.assertEqual(SHRT_MIN, getargs_h(SHRT_MIN)) |
|
6d7464dbb714
Merged revisions 76930 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
57582
diff
changeset
|
139 self.assertEqual(SHRT_MAX, getargs_h(SHRT_MAX)) |
|
6d7464dbb714
Merged revisions 76930 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
57582
diff
changeset
|
140 self.assertRaises(OverflowError, getargs_h, SHRT_MAX+1) |
|
6d7464dbb714
Merged revisions 76930 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
57582
diff
changeset
|
141 |
|
6d7464dbb714
Merged revisions 76930 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
57582
diff
changeset
|
142 self.assertEqual(42, getargs_h(42)) |
|
6d7464dbb714
Merged revisions 76930 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
57582
diff
changeset
|
143 self.assertRaises(OverflowError, getargs_h, VERY_LARGE) |
|
6d7464dbb714
Merged revisions 76930 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
57582
diff
changeset
|
144 |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
145 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
|
146 from _testcapi import getargs_i |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
147 # 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
|
148 self.assertRaises(TypeError, getargs_i, 3.14) |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
149 self.assertEqual(99, getargs_i(Int())) |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
150 |
|
28776
211c02fb6570
This test now uses the separate getargs_X functions from _testcapimodule.
Thomas Heller <theller@ctypes.org>
parents:
28774
diff
changeset
|
151 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
|
152 self.assertEqual(INT_MIN, getargs_i(INT_MIN)) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
153 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
|
154 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
|
155 |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
156 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
|
157 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
|
158 |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
159 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
|
160 from _testcapi import getargs_l |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
161 # 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
|
162 self.assertRaises(TypeError, getargs_l, 3.14) |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
163 self.assertEqual(99, getargs_l(Int())) |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
164 |
|
28776
211c02fb6570
This test now uses the separate getargs_X functions from _testcapimodule.
Thomas Heller <theller@ctypes.org>
parents:
28774
diff
changeset
|
165 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
|
166 self.assertEqual(LONG_MIN, getargs_l(LONG_MIN)) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
167 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
|
168 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
|
169 |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
170 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
|
171 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
|
172 |
|
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
|
173 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
|
174 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
|
175 # 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
|
176 # (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
|
177 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
|
178 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
|
179 |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
37741
diff
changeset
|
180 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
|
181 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
|
182 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
|
183 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
|
184 |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
185 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
|
186 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
|
187 |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
188 |
|
84108
05f7883ee92d
Update various test modules to use unittest.main() for test discovery
Brett Cannon <brett@python.org>
parents:
82957
diff
changeset
|
189 @unittest.skipIf(getargs_L is None, 'PY_LONG_LONG is not available') |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
190 class LongLong_TestCase(unittest.TestCase): |
|
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
191 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
|
192 from _testcapi import getargs_L |
|
58072
78ca69cfc897
Merged revisions 77218 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
57822
diff
changeset
|
193 # 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
|
194 # ... 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
|
195 self.assertRaises(TypeError, getargs_L, 3.14) |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
196 self.assertRaises(TypeError, getargs_L, "Hello") |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
197 self.assertEqual(99, getargs_L(Int())) |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
198 |
|
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_MIN-1) |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
200 self.assertEqual(LLONG_MIN, getargs_L(LLONG_MIN)) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
201 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
|
202 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
|
203 |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
204 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
|
205 self.assertRaises(OverflowError, getargs_L, VERY_LARGE) |
|
28774
c9bee11eaa8b
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
28668
diff
changeset
|
206 |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
207 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
|
208 from _testcapi import getargs_K |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
209 # 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
|
210 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
|
211 self.assertRaises(TypeError, getargs_K, Int()) |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
212 self.assertEqual(ULLONG_MAX, getargs_K(ULLONG_MAX)) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
213 self.assertEqual(0, getargs_K(0)) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
214 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
|
215 |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
216 self.assertEqual(42, getargs_K(42)) |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
217 |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
218 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
|
219 |
|
76776
bc6d28e726d8
Issue #14705: Add 'p' format character to PyArg_ParseTuple* for bool support.
Larry Hastings <larry@hastings.org>
parents:
75842
diff
changeset
|
220 class Paradox: |
|
bc6d28e726d8
Issue #14705: Add 'p' format character to PyArg_ParseTuple* for bool support.
Larry Hastings <larry@hastings.org>
parents:
75842
diff
changeset
|
221 "This statement is false." |
|
bc6d28e726d8
Issue #14705: Add 'p' format character to PyArg_ParseTuple* for bool support.
Larry Hastings <larry@hastings.org>
parents:
75842
diff
changeset
|
222 def __bool__(self): |
|
bc6d28e726d8
Issue #14705: Add 'p' format character to PyArg_ParseTuple* for bool support.
Larry Hastings <larry@hastings.org>
parents:
75842
diff
changeset
|
223 raise NotImplementedError |
|
bc6d28e726d8
Issue #14705: Add 'p' format character to PyArg_ParseTuple* for bool support.
Larry Hastings <larry@hastings.org>
parents:
75842
diff
changeset
|
224 |
|
bc6d28e726d8
Issue #14705: Add 'p' format character to PyArg_ParseTuple* for bool support.
Larry Hastings <larry@hastings.org>
parents:
75842
diff
changeset
|
225 class Boolean_TestCase(unittest.TestCase): |
|
bc6d28e726d8
Issue #14705: Add 'p' format character to PyArg_ParseTuple* for bool support.
Larry Hastings <larry@hastings.org>
parents:
75842
diff
changeset
|
226 def test_p(self): |
|
bc6d28e726d8
Issue #14705: Add 'p' format character to PyArg_ParseTuple* for bool support.
Larry Hastings <larry@hastings.org>
parents:
75842
diff
changeset
|
227 from _testcapi import getargs_p |
|
bc6d28e726d8
Issue #14705: Add 'p' format character to PyArg_ParseTuple* for bool support.
Larry Hastings <larry@hastings.org>
parents:
75842
diff
changeset
|
228 self.assertEqual(0, getargs_p(False)) |
|
bc6d28e726d8
Issue #14705: Add 'p' format character to PyArg_ParseTuple* for bool support.
Larry Hastings <larry@hastings.org>
parents:
75842
diff
changeset
|
229 self.assertEqual(0, getargs_p(None)) |
|
bc6d28e726d8
Issue #14705: Add 'p' format character to PyArg_ParseTuple* for bool support.
Larry Hastings <larry@hastings.org>
parents:
75842
diff
changeset
|
230 self.assertEqual(0, getargs_p(0)) |
|
bc6d28e726d8
Issue #14705: Add 'p' format character to PyArg_ParseTuple* for bool support.
Larry Hastings <larry@hastings.org>
parents:
75842
diff
changeset
|
231 self.assertEqual(0, getargs_p(0.0)) |
|
bc6d28e726d8
Issue #14705: Add 'p' format character to PyArg_ParseTuple* for bool support.
Larry Hastings <larry@hastings.org>
parents:
75842
diff
changeset
|
232 self.assertEqual(0, getargs_p(0j)) |
|
bc6d28e726d8
Issue #14705: Add 'p' format character to PyArg_ParseTuple* for bool support.
Larry Hastings <larry@hastings.org>
parents:
75842
diff
changeset
|
233 self.assertEqual(0, getargs_p('')) |
|
bc6d28e726d8
Issue #14705: Add 'p' format character to PyArg_ParseTuple* for bool support.
Larry Hastings <larry@hastings.org>
parents:
75842
diff
changeset
|
234 self.assertEqual(0, getargs_p(())) |
|
bc6d28e726d8
Issue #14705: Add 'p' format character to PyArg_ParseTuple* for bool support.
Larry Hastings <larry@hastings.org>
parents:
75842
diff
changeset
|
235 self.assertEqual(0, getargs_p([])) |
|
bc6d28e726d8
Issue #14705: Add 'p' format character to PyArg_ParseTuple* for bool support.
Larry Hastings <larry@hastings.org>
parents:
75842
diff
changeset
|
236 self.assertEqual(0, getargs_p({})) |
|
bc6d28e726d8
Issue #14705: Add 'p' format character to PyArg_ParseTuple* for bool support.
Larry Hastings <larry@hastings.org>
parents:
75842
diff
changeset
|
237 |
|
bc6d28e726d8
Issue #14705: Add 'p' format character to PyArg_ParseTuple* for bool support.
Larry Hastings <larry@hastings.org>
parents:
75842
diff
changeset
|
238 self.assertEqual(1, getargs_p(True)) |
|
bc6d28e726d8
Issue #14705: Add 'p' format character to PyArg_ParseTuple* for bool support.
Larry Hastings <larry@hastings.org>
parents:
75842
diff
changeset
|
239 self.assertEqual(1, getargs_p(1)) |
|
bc6d28e726d8
Issue #14705: Add 'p' format character to PyArg_ParseTuple* for bool support.
Larry Hastings <larry@hastings.org>
parents:
75842
diff
changeset
|
240 self.assertEqual(1, getargs_p(1.0)) |
|
bc6d28e726d8
Issue #14705: Add 'p' format character to PyArg_ParseTuple* for bool support.
Larry Hastings <larry@hastings.org>
parents:
75842
diff
changeset
|
241 self.assertEqual(1, getargs_p(1j)) |
|
bc6d28e726d8
Issue #14705: Add 'p' format character to PyArg_ParseTuple* for bool support.
Larry Hastings <larry@hastings.org>
parents:
75842
diff
changeset
|
242 self.assertEqual(1, getargs_p('x')) |
|
bc6d28e726d8
Issue #14705: Add 'p' format character to PyArg_ParseTuple* for bool support.
Larry Hastings <larry@hastings.org>
parents:
75842
diff
changeset
|
243 self.assertEqual(1, getargs_p((1,))) |
|
bc6d28e726d8
Issue #14705: Add 'p' format character to PyArg_ParseTuple* for bool support.
Larry Hastings <larry@hastings.org>
parents:
75842
diff
changeset
|
244 self.assertEqual(1, getargs_p([1])) |
|
bc6d28e726d8
Issue #14705: Add 'p' format character to PyArg_ParseTuple* for bool support.
Larry Hastings <larry@hastings.org>
parents:
75842
diff
changeset
|
245 self.assertEqual(1, getargs_p({1:2})) |
|
bc6d28e726d8
Issue #14705: Add 'p' format character to PyArg_ParseTuple* for bool support.
Larry Hastings <larry@hastings.org>
parents:
75842
diff
changeset
|
246 self.assertEqual(1, getargs_p(unittest.TestCase)) |
|
bc6d28e726d8
Issue #14705: Add 'p' format character to PyArg_ParseTuple* for bool support.
Larry Hastings <larry@hastings.org>
parents:
75842
diff
changeset
|
247 |
|
bc6d28e726d8
Issue #14705: Add 'p' format character to PyArg_ParseTuple* for bool support.
Larry Hastings <larry@hastings.org>
parents:
75842
diff
changeset
|
248 self.assertRaises(NotImplementedError, getargs_p, Paradox()) |
|
bc6d28e726d8
Issue #14705: Add 'p' format character to PyArg_ParseTuple* for bool support.
Larry Hastings <larry@hastings.org>
parents:
75842
diff
changeset
|
249 |
|
39442
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
37883
diff
changeset
|
250 |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
37883
diff
changeset
|
251 class Tuple_TestCase(unittest.TestCase): |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
37883
diff
changeset
|
252 def test_tuple(self): |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
37883
diff
changeset
|
253 from _testcapi import getargs_tuple |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
37883
diff
changeset
|
254 |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
37883
diff
changeset
|
255 ret = getargs_tuple(1, (2, 3)) |
|
66340
2beb25369289
Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
55593
diff
changeset
|
256 self.assertEqual(ret, (1,2,3)) |
|
39442
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
37883
diff
changeset
|
257 |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
37883
diff
changeset
|
258 # 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
|
259 class seq: |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
37883
diff
changeset
|
260 def __len__(self): |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
37883
diff
changeset
|
261 return 2 |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
37883
diff
changeset
|
262 def __getitem__(self, n): |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
37883
diff
changeset
|
263 raise ValueError |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
37883
diff
changeset
|
264 self.assertRaises(TypeError, getargs_tuple, 1, seq()) |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
37883
diff
changeset
|
265 |
|
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
|
266 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
|
267 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
|
268 # using all positional args |
|
66340
2beb25369289
Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
55593
diff
changeset
|
269 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
|
270 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
|
271 (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
|
272 ) |
|
61717
1504cc5a15a1
Issue #6697: Fix a crash if a keyword contains a surrogate
Victor Stinner <victor.stinner@haypocalc.com>
parents:
58072
diff
changeset
|
273 |
|
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
|
274 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
|
275 # positional and keyword args |
|
66340
2beb25369289
Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
55593
diff
changeset
|
276 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
|
277 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
|
278 (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
|
279 ) |
|
61717
1504cc5a15a1
Issue #6697: Fix a crash if a keyword contains a surrogate
Victor Stinner <victor.stinner@haypocalc.com>
parents:
58072
diff
changeset
|
280 |
|
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
|
281 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
|
282 # all keywords |
|
66340
2beb25369289
Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
55593
diff
changeset
|
283 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
|
284 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
|
285 (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
|
286 ) |
|
61717
1504cc5a15a1
Issue #6697: Fix a crash if a keyword contains a surrogate
Victor Stinner <victor.stinner@haypocalc.com>
parents:
58072
diff
changeset
|
287 |
|
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
|
288 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
|
289 # missing optional keyword args, skipping tuples |
|
66340
2beb25369289
Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
55593
diff
changeset
|
290 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
|
291 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
|
292 (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
|
293 ) |
|
61717
1504cc5a15a1
Issue #6697: Fix a crash if a keyword contains a surrogate
Victor Stinner <victor.stinner@haypocalc.com>
parents:
58072
diff
changeset
|
294 |
|
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
|
295 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
|
296 # 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
|
297 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
|
298 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
|
299 except TypeError as err: |
|
66340
2beb25369289
Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
55593
diff
changeset
|
300 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
|
301 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
|
302 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
|
303 |
|
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
|
304 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
|
305 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
|
306 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
|
307 except TypeError as err: |
|
66340
2beb25369289
Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
55593
diff
changeset
|
308 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
|
309 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
|
310 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
|
311 |
|
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
|
312 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
|
313 # 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
|
314 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
|
315 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
|
316 except TypeError as err: |
|
66340
2beb25369289
Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
55593
diff
changeset
|
317 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
|
318 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
|
319 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
|
320 |
|
61717
1504cc5a15a1
Issue #6697: Fix a crash if a keyword contains a surrogate
Victor Stinner <victor.stinner@haypocalc.com>
parents:
58072
diff
changeset
|
321 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
|
322 try: |
|
1504cc5a15a1
Issue #6697: Fix a crash if a keyword contains a surrogate
Victor Stinner <victor.stinner@haypocalc.com>
parents:
58072
diff
changeset
|
323 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
|
324 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
|
325 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
|
326 else: |
|
1504cc5a15a1
Issue #6697: Fix a crash if a keyword contains a surrogate
Victor Stinner <victor.stinner@haypocalc.com>
parents:
58072
diff
changeset
|
327 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
|
328 |
|
75842
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
329 class KeywordOnly_TestCase(unittest.TestCase): |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
330 def test_positional_args(self): |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
331 # using all possible positional args |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
332 self.assertEqual( |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
333 getargs_keyword_only(1, 2), |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
334 (1, 2, -1) |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
335 ) |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
336 |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
337 def test_mixed_args(self): |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
338 # positional and keyword args |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
339 self.assertEqual( |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
340 getargs_keyword_only(1, 2, keyword_only=3), |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
341 (1, 2, 3) |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
342 ) |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
343 |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
344 def test_keyword_args(self): |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
345 # all keywords |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
346 self.assertEqual( |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
347 getargs_keyword_only(required=1, optional=2, keyword_only=3), |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
348 (1, 2, 3) |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
349 ) |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
350 |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
351 def test_optional_args(self): |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
352 # missing optional keyword args, skipping tuples |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
353 self.assertEqual( |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
354 getargs_keyword_only(required=1, optional=2), |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
355 (1, 2, -1) |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
356 ) |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
357 self.assertEqual( |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
358 getargs_keyword_only(required=1, keyword_only=3), |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
359 (1, -1, 3) |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
360 ) |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
361 |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
362 def test_required_args(self): |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
363 self.assertEqual( |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
364 getargs_keyword_only(1), |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
365 (1, -1, -1) |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
366 ) |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
367 self.assertEqual( |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
368 getargs_keyword_only(required=1), |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
369 (1, -1, -1) |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
370 ) |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
371 # required arg missing |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
372 with self.assertRaisesRegex(TypeError, |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
373 "Required argument 'required' \(pos 1\) not found"): |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
374 getargs_keyword_only(optional=2) |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
375 |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
376 with self.assertRaisesRegex(TypeError, |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
377 "Required argument 'required' \(pos 1\) not found"): |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
378 getargs_keyword_only(keyword_only=3) |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
379 |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
380 def test_too_many_args(self): |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
381 with self.assertRaisesRegex(TypeError, |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
382 "Function takes at most 2 positional arguments \(3 given\)"): |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
383 getargs_keyword_only(1, 2, 3) |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
384 |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
385 with self.assertRaisesRegex(TypeError, |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
386 "function takes at most 3 arguments \(4 given\)"): |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
387 getargs_keyword_only(1, 2, 3, keyword_only=5) |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
388 |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
389 def test_invalid_keyword(self): |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
390 # extraneous keyword arg |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
391 with self.assertRaisesRegex(TypeError, |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
392 "'monster' is an invalid keyword argument for this function"): |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
393 getargs_keyword_only(1, 2, monster=666) |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
394 |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
395 def test_surrogate_keyword(self): |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
396 with self.assertRaisesRegex(TypeError, |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
397 "'\udc80' is an invalid keyword argument for this function"): |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
398 getargs_keyword_only(1, 2, **{'\uDC80': 10}) |
|
052779d34945
Issue #14328: Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
Larry Hastings <larry@hastings.org>
parents:
71543
diff
changeset
|
399 |
|
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
|
400 class Bytes_TestCase(unittest.TestCase): |
|
71543
536fccc75f5a
Issue #12380: PyArg_ParseTuple now accepts a bytearray for the 'c' format.
Eli Bendersky <eliben@gmail.com>
parents:
68257
diff
changeset
|
401 def test_c(self): |
|
536fccc75f5a
Issue #12380: PyArg_ParseTuple now accepts a bytearray for the 'c' format.
Eli Bendersky <eliben@gmail.com>
parents:
68257
diff
changeset
|
402 from _testcapi import getargs_c |
|
536fccc75f5a
Issue #12380: PyArg_ParseTuple now accepts a bytearray for the 'c' format.
Eli Bendersky <eliben@gmail.com>
parents:
68257
diff
changeset
|
403 self.assertRaises(TypeError, getargs_c, b'abc') # len > 1 |
|
536fccc75f5a
Issue #12380: PyArg_ParseTuple now accepts a bytearray for the 'c' format.
Eli Bendersky <eliben@gmail.com>
parents:
68257
diff
changeset
|
404 self.assertEqual(getargs_c(b'a'), b'a') |
|
536fccc75f5a
Issue #12380: PyArg_ParseTuple now accepts a bytearray for the 'c' format.
Eli Bendersky <eliben@gmail.com>
parents:
68257
diff
changeset
|
405 self.assertEqual(getargs_c(bytearray(b'a')), b'a') |
|
536fccc75f5a
Issue #12380: PyArg_ParseTuple now accepts a bytearray for the 'c' format.
Eli Bendersky <eliben@gmail.com>
parents:
68257
diff
changeset
|
406 self.assertRaises(TypeError, getargs_c, memoryview(b'a')) |
|
536fccc75f5a
Issue #12380: PyArg_ParseTuple now accepts a bytearray for the 'c' format.
Eli Bendersky <eliben@gmail.com>
parents:
68257
diff
changeset
|
407 self.assertRaises(TypeError, getargs_c, 's') |
|
536fccc75f5a
Issue #12380: PyArg_ParseTuple now accepts a bytearray for the 'c' format.
Eli Bendersky <eliben@gmail.com>
parents:
68257
diff
changeset
|
408 self.assertRaises(TypeError, getargs_c, None) |
|
536fccc75f5a
Issue #12380: PyArg_ParseTuple now accepts a bytearray for the 'c' format.
Eli Bendersky <eliben@gmail.com>
parents:
68257
diff
changeset
|
409 |
|
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
|
410 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
|
411 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
|
412 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
|
413 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
|
414 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
|
415 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
|
416 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
|
417 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
|
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_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
|
420 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
|
421 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
|
422 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
|
423 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
|
424 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
|
425 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
|
426 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
|
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 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
|
429 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
|
430 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
|
431 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
|
432 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
|
433 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
|
434 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
|
435 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
|
436 |
|
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 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
|
438 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
|
439 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
|
440 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
|
441 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
|
442 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
|
443 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
|
444 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
|
445 |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
446 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
|
447 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
|
448 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
|
449 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
|
450 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
|
451 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
|
452 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
|
453 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
|
454 |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
455 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
|
456 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
|
457 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
|
458 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
|
459 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
|
460 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
|
461 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
|
462 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
|
463 |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
464 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
|
465 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
|
466 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
|
467 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
|
468 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
|
469 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
|
470 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
|
471 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
|
472 |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
473 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
|
474 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
|
475 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
|
476 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
|
477 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
|
478 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
|
479 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
|
480 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
|
481 |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
482 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
|
483 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
|
484 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
|
485 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
|
486 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
|
487 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
|
488 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
|
489 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
|
490 |
|
62484
bcc0e825faa0
Issue #8850: Remove "w" and "w#" formats from PyArg_Parse*() functions, use
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62476
diff
changeset
|
491 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
|
492 # 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
|
493 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
|
494 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
|
495 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
|
496 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
|
497 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
|
498 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
|
499 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
|
500 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
|
501 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
|
502 |
|
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
|
503 |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
504 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
|
505 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
|
506 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
|
507 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
|
508 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
|
509 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
|
510 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
|
511 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
|
512 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
|
513 |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
514 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
|
515 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
|
516 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
|
517 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
|
518 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
|
519 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
|
520 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
|
521 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
|
522 |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
523 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
|
524 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
|
525 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
|
526 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
|
527 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
|
528 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
|
529 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
|
530 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
|
531 |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
532 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
|
533 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
|
534 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
|
535 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
|
536 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
|
537 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
|
538 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
|
539 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
|
540 |
|
b32a2816f6e9
Issue #8592: PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
Victor Stinner <victor.stinner@haypocalc.com>
parents:
62221
diff
changeset
|
541 |
|
28652
28a2975514cd
SF # 595026: support for masks in getargs.c.
Thomas Heller <theller@ctypes.org>
parents:
diff
changeset
|
542 if __name__ == "__main__": |
|
84108
05f7883ee92d
Update various test modules to use unittest.main() for test discovery
Brett Cannon <brett@python.org>
parents:
82957
diff
changeset
|
543 unittest.main() |
