Mercurial > cpython-lru_cache-weakref
annotate Lib/test/test_extcall.py @ 54294:dba767bc3155 legacy-trunk
remove mention of old ctypes version
| author | Benjamin Peterson <benjamin@python.org> |
|---|---|
| date | Sat, 23 May 2009 20:59:09 +0000 |
| parents | 222b6d80e769 |
| children | a666134e6c0c |
| rev | line source |
|---|---|
|
58751
222b6d80e769
Merged revisions 68805 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
45875
diff
changeset
|
1 # -*- coding: utf-8 -*- |
|
45817
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
2 """Doctest for method/function calls. |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
3 |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
4 We're going the use these types for extra testing |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
5 |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
6 >>> from UserList import UserList |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
7 >>> from UserDict import UserDict |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
8 |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
9 We're defining four helper functions |
|
12083
7e006342e790
add test cases for Greg Ewing's extended call syntax patch
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff
changeset
|
10 |
|
45817
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
11 >>> def e(a,b): |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
12 ... print a, b |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
13 |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
14 >>> def f(*a, **k): |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
15 ... print a, test_support.sortdict(k) |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
16 |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
17 >>> def g(x, *y, **z): |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
18 ... print x, y, test_support.sortdict(z) |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
19 |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
20 >>> def h(j=1, a=2, h=3): |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
21 ... print j, a, h |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
22 |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
23 Argument list examples |
|
29339
fc286e28556f
SF bug #733667: kwargs handled incorrectly
Raymond Hettinger <python@rcn.com>
parents:
28089
diff
changeset
|
24 |
|
45817
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
25 >>> f() |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
26 () {} |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
27 >>> f(1) |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
28 (1,) {} |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
29 >>> f(1, 2) |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
30 (1, 2) {} |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
31 >>> f(1, 2, 3) |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
32 (1, 2, 3) {} |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
33 >>> f(1, 2, 3, *(4, 5)) |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
34 (1, 2, 3, 4, 5) {} |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
35 >>> f(1, 2, 3, *[4, 5]) |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
36 (1, 2, 3, 4, 5) {} |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
37 >>> f(1, 2, 3, *UserList([4, 5])) |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
38 (1, 2, 3, 4, 5) {} |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
39 |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
40 Here we add keyword arguments |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
41 |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
42 >>> f(1, 2, 3, **{'a':4, 'b':5}) |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
43 (1, 2, 3) {'a': 4, 'b': 5} |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
44 >>> f(1, 2, 3, *[4, 5], **{'a':6, 'b':7}) |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
45 (1, 2, 3, 4, 5) {'a': 6, 'b': 7} |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
46 >>> f(1, 2, 3, x=4, y=5, *(6, 7), **{'a':8, 'b': 9}) |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
47 (1, 2, 3, 6, 7) {'a': 8, 'b': 9, 'x': 4, 'y': 5} |
|
12083
7e006342e790
add test cases for Greg Ewing's extended call syntax patch
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff
changeset
|
48 |
|
45817
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
49 >>> f(1, 2, 3, **UserDict(a=4, b=5)) |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
50 (1, 2, 3) {'a': 4, 'b': 5} |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
51 >>> f(1, 2, 3, *(4, 5), **UserDict(a=6, b=7)) |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
52 (1, 2, 3, 4, 5) {'a': 6, 'b': 7} |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
53 >>> f(1, 2, 3, x=4, y=5, *(6, 7), **UserDict(a=8, b=9)) |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
54 (1, 2, 3, 6, 7) {'a': 8, 'b': 9, 'x': 4, 'y': 5} |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
55 |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
56 Examples with invalid arguments (TypeErrors). We're also testing the function |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
57 names in the exception messages. |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
58 |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
59 Verify clearing of SF bug #733667 |
|
12083
7e006342e790
add test cases for Greg Ewing's extended call syntax patch
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff
changeset
|
60 |
|
45817
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
61 >>> e(c=4) |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
62 Traceback (most recent call last): |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
63 ... |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
64 TypeError: e() got an unexpected keyword argument 'c' |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
65 |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
66 >>> g() |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
67 Traceback (most recent call last): |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
68 ... |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
69 TypeError: g() takes at least 1 argument (0 given) |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
70 |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
71 >>> g(*()) |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
72 Traceback (most recent call last): |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
73 ... |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
74 TypeError: g() takes at least 1 argument (0 given) |
|
12083
7e006342e790
add test cases for Greg Ewing's extended call syntax patch
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff
changeset
|
75 |
|
45817
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
76 >>> g(*(), **{}) |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
77 Traceback (most recent call last): |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
78 ... |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
79 TypeError: g() takes at least 1 argument (0 given) |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
80 |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
81 >>> g(1) |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
82 1 () {} |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
83 >>> g(1, 2) |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
84 1 (2,) {} |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
85 >>> g(1, 2, 3) |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
86 1 (2, 3) {} |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
87 >>> g(1, 2, 3, *(4, 5)) |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
88 1 (2, 3, 4, 5) {} |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
89 |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
90 >>> class Nothing: pass |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
91 ... |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
92 >>> g(*Nothing()) |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
93 Traceback (most recent call last): |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
94 ... |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
95 TypeError: g() argument after * must be a sequence, not instance |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
96 |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
97 >>> class Nothing: |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
98 ... def __len__(self): return 5 |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
99 ... |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
100 |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
101 >>> g(*Nothing()) |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
102 Traceback (most recent call last): |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
103 ... |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
104 TypeError: g() argument after * must be a sequence, not instance |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
105 |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
106 >>> class Nothing(): |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
107 ... def __len__(self): return 5 |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
108 ... def __getitem__(self, i): |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
109 ... if i<3: return i |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
110 ... else: raise IndexError(i) |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
111 ... |
|
12083
7e006342e790
add test cases for Greg Ewing's extended call syntax patch
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff
changeset
|
112 |
|
45817
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
113 >>> g(*Nothing()) |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
114 0 (1, 2) {} |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
115 |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
116 >>> class Nothing: |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
117 ... def __init__(self): self.c = 0 |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
118 ... def __iter__(self): return self |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
119 ... def next(self): |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
120 ... if self.c == 4: |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
121 ... raise StopIteration |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
122 ... c = self.c |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
123 ... self.c += 1 |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
124 ... return c |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
125 ... |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
126 |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
127 >>> g(*Nothing()) |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
128 0 (1, 2, 3) {} |
|
12083
7e006342e790
add test cases for Greg Ewing's extended call syntax patch
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff
changeset
|
129 |
|
45817
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
130 Make sure that the function doesn't stomp the dictionary |
|
41807
a405732a262d
Patch #1686487: you can now pass any mapping after '**' in function calls.
Georg Brandl <georg@python.org>
parents:
31574
diff
changeset
|
131 |
|
45817
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
132 >>> d = {'a': 1, 'b': 2, 'c': 3} |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
133 >>> d2 = d.copy() |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
134 >>> g(1, d=4, **d) |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
135 1 () {'a': 1, 'b': 2, 'c': 3, 'd': 4} |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
136 >>> d == d2 |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
137 True |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
138 |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
139 What about willful misconduct? |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
140 |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
141 >>> def saboteur(**kw): |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
142 ... kw['x'] = 'm' |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
143 ... return kw |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
144 |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
145 >>> d = {} |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
146 >>> kw = saboteur(a=1, **d) |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
147 >>> d |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
148 {} |
|
41807
a405732a262d
Patch #1686487: you can now pass any mapping after '**' in function calls.
Georg Brandl <georg@python.org>
parents:
31574
diff
changeset
|
149 |
|
a405732a262d
Patch #1686487: you can now pass any mapping after '**' in function calls.
Georg Brandl <georg@python.org>
parents:
31574
diff
changeset
|
150 |
|
45817
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
151 >>> g(1, 2, 3, **{'x': 4, 'y': 5}) |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
152 Traceback (most recent call last): |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
153 ... |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
154 TypeError: g() got multiple values for keyword argument 'x' |
|
29339
fc286e28556f
SF bug #733667: kwargs handled incorrectly
Raymond Hettinger <python@rcn.com>
parents:
28089
diff
changeset
|
155 |
|
45817
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
156 >>> f(**{1:2}) |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
157 Traceback (most recent call last): |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
158 ... |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
159 TypeError: f() keywords must be strings |
|
15305
07f24261c6e6
Make reindent.py happy (convert everything to 4-space indents!).
Fred Drake <fdrake@acm.org>
parents:
13610
diff
changeset
|
160 |
|
45817
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
161 >>> h(**{'e': 2}) |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
162 Traceback (most recent call last): |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
163 ... |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
164 TypeError: h() got an unexpected keyword argument 'e' |
|
12133
711340d44777
Two fixes for extended call syntax:
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
12084
diff
changeset
|
165 |
|
45817
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
166 >>> h(*h) |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
167 Traceback (most recent call last): |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
168 ... |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
169 TypeError: h() argument after * must be a sequence, not function |
|
15305
07f24261c6e6
Make reindent.py happy (convert everything to 4-space indents!).
Fred Drake <fdrake@acm.org>
parents:
13610
diff
changeset
|
170 |
|
45817
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
171 >>> dir(*h) |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
172 Traceback (most recent call last): |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
173 ... |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
174 TypeError: dir() argument after * must be a sequence, not function |
|
12133
711340d44777
Two fixes for extended call syntax:
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
12084
diff
changeset
|
175 |
|
45817
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
176 >>> None(*h) |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
177 Traceback (most recent call last): |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
178 ... |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
179 TypeError: NoneType object argument after * must be a sequence, \ |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
180 not function |
|
31574
c37c407faf52
adding passing test. testing for g(*Nothing()) where Nothing is a user-defined iterator.
Samuele Pedroni <pedronis@openend.se>
parents:
29339
diff
changeset
|
181 |
|
45817
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
182 >>> h(**h) |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
183 Traceback (most recent call last): |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
184 ... |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
185 TypeError: h() argument after ** must be a mapping, not function |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
186 |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
187 >>> dir(**h) |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
188 Traceback (most recent call last): |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
189 ... |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
190 TypeError: dir() argument after ** must be a mapping, not function |
|
31574
c37c407faf52
adding passing test. testing for g(*Nothing()) where Nothing is a user-defined iterator.
Samuele Pedroni <pedronis@openend.se>
parents:
29339
diff
changeset
|
191 |
|
45817
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
192 >>> None(**h) |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
193 Traceback (most recent call last): |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
194 ... |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
195 TypeError: NoneType object argument after ** must be a mapping, \ |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
196 not function |
|
15305
07f24261c6e6
Make reindent.py happy (convert everything to 4-space indents!).
Fred Drake <fdrake@acm.org>
parents:
13610
diff
changeset
|
197 |
|
45817
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
198 >>> dir(b=1, **{'b': 1}) |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
199 Traceback (most recent call last): |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
200 ... |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
201 TypeError: dir() got multiple values for keyword argument 'b' |
|
15305
07f24261c6e6
Make reindent.py happy (convert everything to 4-space indents!).
Fred Drake <fdrake@acm.org>
parents:
13610
diff
changeset
|
202 |
|
45817
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
203 Another helper function |
|
12083
7e006342e790
add test cases for Greg Ewing's extended call syntax patch
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff
changeset
|
204 |
|
45817
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
205 >>> def f2(*a, **b): |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
206 ... return a, b |
|
12083
7e006342e790
add test cases for Greg Ewing's extended call syntax patch
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff
changeset
|
207 |
|
7e006342e790
add test cases for Greg Ewing's extended call syntax patch
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff
changeset
|
208 |
|
45817
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
209 >>> d = {} |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
210 >>> for i in xrange(512): |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
211 ... key = 'k%d' % i |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
212 ... d[key] = i |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
213 >>> a, b = f2(1, *(2,3), **d) |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
214 >>> len(a), len(b), b == d |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
215 (3, 512, True) |
|
17407
9d76d8552c36
Test cases for examples of ext call error handling.
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
16517
diff
changeset
|
216 |
|
45817
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
217 >>> class Foo: |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
218 ... def method(self, arg1, arg2): |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
219 ... return arg1+arg2 |
|
17407
9d76d8552c36
Test cases for examples of ext call error handling.
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
16517
diff
changeset
|
220 |
|
45817
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
221 >>> x = Foo() |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
222 >>> Foo.method(*(x, 1, 2)) |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
223 3 |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
224 >>> Foo.method(x, *(1, 2)) |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
225 3 |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
226 >>> Foo.method(*(1, 2, 3)) |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
227 Traceback (most recent call last): |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
228 ... |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
229 TypeError: unbound method method() must be called with Foo instance as \ |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
230 first argument (got int instance instead) |
|
12083
7e006342e790
add test cases for Greg Ewing's extended call syntax patch
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff
changeset
|
231 |
|
45817
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
232 >>> Foo.method(1, *[2, 3]) |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
233 Traceback (most recent call last): |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
234 ... |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
235 TypeError: unbound method method() must be called with Foo instance as \ |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
236 first argument (got int instance instead) |
|
15364
09952d6ed372
Fix for SF bug #117241
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
15305
diff
changeset
|
237 |
|
45817
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
238 A PyCFunction that takes only positional parameters shoud allow an |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
239 empty keyword dictionary to pass without a complaint, but raise a |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
240 TypeError if te dictionary is not empty |
|
15364
09952d6ed372
Fix for SF bug #117241
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
15305
diff
changeset
|
241 |
|
45817
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
242 >>> try: |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
243 ... silence = id(1, *{}) |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
244 ... True |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
245 ... except: |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
246 ... False |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
247 True |
|
15899
152814f6cd11
This patch makes sure that the function name always appears in the error
Ka-Ping Yee <ping@zesty.ca>
parents:
15739
diff
changeset
|
248 |
|
45817
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
249 >>> id(1, **{'foo': 1}) |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
250 Traceback (most recent call last): |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
251 ... |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
252 TypeError: id() takes no keyword arguments |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
253 |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
254 """ |
|
15899
152814f6cd11
This patch makes sure that the function name always appears in the error
Ka-Ping Yee <ping@zesty.ca>
parents:
15739
diff
changeset
|
255 |
|
58751
222b6d80e769
Merged revisions 68805 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
45875
diff
changeset
|
256 import unittest |
|
45817
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
257 from test import test_support |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
258 |
|
58751
222b6d80e769
Merged revisions 68805 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
45875
diff
changeset
|
259 |
|
222b6d80e769
Merged revisions 68805 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
45875
diff
changeset
|
260 class UnicodeKeywordArgsTest(unittest.TestCase): |
|
222b6d80e769
Merged revisions 68805 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
45875
diff
changeset
|
261 |
|
222b6d80e769
Merged revisions 68805 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
45875
diff
changeset
|
262 def test_unicode_keywords(self): |
|
222b6d80e769
Merged revisions 68805 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
45875
diff
changeset
|
263 def f(a): |
|
222b6d80e769
Merged revisions 68805 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
45875
diff
changeset
|
264 return a |
|
222b6d80e769
Merged revisions 68805 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
45875
diff
changeset
|
265 self.assertEqual(f(**{u'a': 4}), 4) |
|
222b6d80e769
Merged revisions 68805 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
45875
diff
changeset
|
266 self.assertRaises(TypeError, f, **{u'stören': 4}) |
|
222b6d80e769
Merged revisions 68805 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
45875
diff
changeset
|
267 self.assertRaises(TypeError, f, **{u'someLongString':2}) |
|
222b6d80e769
Merged revisions 68805 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
45875
diff
changeset
|
268 try: |
|
222b6d80e769
Merged revisions 68805 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
45875
diff
changeset
|
269 f(a=4, **{u'a': 4}) |
|
222b6d80e769
Merged revisions 68805 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
45875
diff
changeset
|
270 except TypeError: |
|
222b6d80e769
Merged revisions 68805 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
45875
diff
changeset
|
271 pass |
|
222b6d80e769
Merged revisions 68805 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
45875
diff
changeset
|
272 else: |
|
222b6d80e769
Merged revisions 68805 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
45875
diff
changeset
|
273 self.fail("duplicate arguments didn't raise") |
|
222b6d80e769
Merged revisions 68805 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
45875
diff
changeset
|
274 |
|
222b6d80e769
Merged revisions 68805 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
45875
diff
changeset
|
275 |
|
45817
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
276 def test_main(): |
|
45875
1bb67e503dff
Import the test properly. This is especially important for py3k.
Neal Norwitz <nnorwitz@gmail.com>
parents:
45817
diff
changeset
|
277 from test import test_extcall # self import |
|
45817
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
278 test_support.run_doctest(test_extcall, True) |
|
58751
222b6d80e769
Merged revisions 68805 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
45875
diff
changeset
|
279 test_support.run_unittest(UnicodeKeywordArgsTest) |
|
45817
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
280 |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
281 if __name__ == '__main__': |
|
8defa1d5f066
Move test_extcall to doctest.
Brett Cannon <bcannon@gmail.com>
parents:
45468
diff
changeset
|
282 test_main() |
