bpo-30534: Fixed error messages when pass keyword arguments (#1901) · python/cpython@5eb788b (original) (raw)
1
1
`import unittest
`
``
2
`+
from test.support import cpython_only
`
2
3
``
3
4
`# The test cases here cover several paths through the function calling
`
4
5
`# code. They depend on the METH_XXX flag that is used to define a C
`
`@@ -33,9 +34,6 @@ def test_varargs2_ext(self):
`
33
34
`else:
`
34
35
`raise RuntimeError
`
35
36
``
36
``
`-
def test_varargs0_kw(self):
`
37
``
`-
self.assertRaises(TypeError, {}.contains, x=2)
`
38
``
-
39
37
`def test_varargs1_kw(self):
`
40
38
`self.assertRaises(TypeError, {}.contains, x=2)
`
41
39
``
`@@ -122,5 +120,61 @@ def test_oldargs1_2_kw(self):
`
122
120
`self.assertRaises(TypeError, [].count, x=2, y=2)
`
123
121
``
124
122
``
``
123
`+
@cpython_only
`
``
124
`+
class CFunctionCallsErrorMessages(unittest.TestCase):
`
``
125
+
``
126
`+
def test_varargs0(self):
`
``
127
`+
msg = r"__contains__() takes exactly one argument (0 given)"
`
``
128
`+
self.assertRaisesRegex(TypeError, msg, {}.contains)
`
``
129
+
``
130
`+
def test_varargs2(self):
`
``
131
`+
msg = r"__contains__() takes exactly one argument (2 given)"
`
``
132
`+
self.assertRaisesRegex(TypeError, msg, {}.contains, 0, 1)
`
``
133
+
``
134
`+
def test_varargs1_kw(self):
`
``
135
`+
msg = r"__contains__() takes no keyword arguments"
`
``
136
`+
self.assertRaisesRegex(TypeError, msg, {}.contains, x=2)
`
``
137
+
``
138
`+
def test_varargs2_kw(self):
`
``
139
`+
msg = r"__contains__() takes no keyword arguments"
`
``
140
`+
self.assertRaisesRegex(TypeError, msg, {}.contains, x=2, y=2)
`
``
141
+
``
142
`+
def test_oldargs0_1(self):
`
``
143
`+
msg = r"keys() takes no arguments (1 given)"
`
``
144
`+
self.assertRaisesRegex(TypeError, msg, {}.keys, 0)
`
``
145
+
``
146
`+
def test_oldargs0_2(self):
`
``
147
`+
msg = r"keys() takes no arguments (2 given)"
`
``
148
`+
self.assertRaisesRegex(TypeError, msg, {}.keys, 0, 1)
`
``
149
+
``
150
`+
def test_oldargs0_1_kw(self):
`
``
151
`+
msg = r"keys() takes no keyword arguments"
`
``
152
`+
self.assertRaisesRegex(TypeError, msg, {}.keys, x=2)
`
``
153
+
``
154
`+
def test_oldargs0_2_kw(self):
`
``
155
`+
msg = r"keys() takes no keyword arguments"
`
``
156
`+
self.assertRaisesRegex(TypeError, msg, {}.keys, x=2, y=2)
`
``
157
+
``
158
`+
def test_oldargs1_0(self):
`
``
159
`+
msg = r"count() takes exactly one argument (0 given)"
`
``
160
`+
self.assertRaisesRegex(TypeError, msg, [].count)
`
``
161
+
``
162
`+
def test_oldargs1_2(self):
`
``
163
`+
msg = r"count() takes exactly one argument (2 given)"
`
``
164
`+
self.assertRaisesRegex(TypeError, msg, [].count, 1, 2)
`
``
165
+
``
166
`+
def test_oldargs1_0_kw(self):
`
``
167
`+
msg = r"count() takes no keyword arguments"
`
``
168
`+
self.assertRaisesRegex(TypeError, msg, [].count, x=2)
`
``
169
+
``
170
`+
def test_oldargs1_1_kw(self):
`
``
171
`+
msg = r"count() takes no keyword arguments"
`
``
172
`+
self.assertRaisesRegex(TypeError, msg, [].count, {}, x=2)
`
``
173
+
``
174
`+
def test_oldargs1_2_kw(self):
`
``
175
`+
msg = r"count() takes no keyword arguments"
`
``
176
`+
self.assertRaisesRegex(TypeError, msg, [].count, x=2, y=2)
`
``
177
+
``
178
+
125
179
`if name == "main":
`
126
180
`unittest.main()
`