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()

`