Skip to content

Commit 6b1d956

Browse files
gh-117557: Raise ValueError iso. TypeError if str length is wrong for int(accept={str}) Argument Clinic converter
1 parent 9c1dfe2 commit 6b1d956

File tree

7 files changed

+31
-31
lines changed

7 files changed

+31
-31
lines changed

Lib/test/clinic.test.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1028,7 +1028,7 @@ test_int_converter(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
10281028
goto exit;
10291029
}
10301030
if (PyUnicode_GET_LENGTH(args[2]) != 1) {
1031-
_PyArg_BadArgument("test_int_converter", "argument 3", "a unicode character", args[2]);
1031+
PyErr_SetString(PyExc_ValueError, "a single unicode character expected");
10321032
goto exit;
10331033
}
10341034
c = PyUnicode_READ_CHAR(args[2], 0);
@@ -1048,7 +1048,7 @@ test_int_converter(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
10481048

10491049
static PyObject *
10501050
test_int_converter_impl(PyObject *module, int a, int b, int c, myenum d)
1051-
/*[clinic end generated code: output=5aed87a7589eefb2 input=d20541fc1ca0553e]*/
1051+
/*[clinic end generated code: output=ec176dff0664c4a5 input=d20541fc1ca0553e]*/
10521052

10531053

10541054
/*[clinic input]

Lib/test/test_unicodedata.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ def test_digit(self):
133133
self.assertEqual(self.db.digit('\U0001D7FD'), 7)
134134

135135
self.assertRaises(TypeError, self.db.digit)
136-
self.assertRaises(TypeError, self.db.digit, 'xx')
136+
self.assertRaises(ValueError, self.db.digit, 'xx')
137137
self.assertRaises(ValueError, self.db.digit, 'x')
138138

139139
def test_numeric(self):
@@ -146,7 +146,7 @@ def test_numeric(self):
146146
self.assertEqual(self.db.numeric('\U0001012A'), 9000)
147147

148148
self.assertRaises(TypeError, self.db.numeric)
149-
self.assertRaises(TypeError, self.db.numeric, 'xx')
149+
self.assertRaises(ValueError, self.db.numeric, 'xx')
150150
self.assertRaises(ValueError, self.db.numeric, 'x')
151151

152152
def test_decimal(self):
@@ -158,7 +158,7 @@ def test_decimal(self):
158158
self.assertEqual(self.db.decimal('\U0001D7FD'), 7)
159159

160160
self.assertRaises(TypeError, self.db.decimal)
161-
self.assertRaises(TypeError, self.db.decimal, 'xx')
161+
self.assertRaises(ValueError, self.db.decimal, 'xx')
162162
self.assertRaises(ValueError, self.db.decimal, 'x')
163163

164164
def test_category(self):
@@ -169,7 +169,7 @@ def test_category(self):
169169
self.assertEqual(self.db.category('\U0001012A'), 'No')
170170

171171
self.assertRaises(TypeError, self.db.category)
172-
self.assertRaises(TypeError, self.db.category, 'xx')
172+
self.assertRaises(ValueError, self.db.category, 'xx')
173173

174174
def test_bidirectional(self):
175175
self.assertEqual(self.db.bidirectional('\uFFFE'), '')
@@ -178,14 +178,14 @@ def test_bidirectional(self):
178178
self.assertEqual(self.db.bidirectional('\U00020000'), 'L')
179179

180180
self.assertRaises(TypeError, self.db.bidirectional)
181-
self.assertRaises(TypeError, self.db.bidirectional, 'xx')
181+
self.assertRaises(ValueError, self.db.bidirectional, 'xx')
182182

183183
def test_decomposition(self):
184184
self.assertEqual(self.db.decomposition('\uFFFE'),'')
185185
self.assertEqual(self.db.decomposition('\u00bc'), '<fraction> 0031 2044 0034')
186186

187187
self.assertRaises(TypeError, self.db.decomposition)
188-
self.assertRaises(TypeError, self.db.decomposition, 'xx')
188+
self.assertRaises(ValueError, self.db.decomposition, 'xx')
189189

190190
def test_mirrored(self):
191191
self.assertEqual(self.db.mirrored('\uFFFE'), 0)
@@ -194,7 +194,7 @@ def test_mirrored(self):
194194
self.assertEqual(self.db.mirrored('\U00020000'), 0)
195195

196196
self.assertRaises(TypeError, self.db.mirrored)
197-
self.assertRaises(TypeError, self.db.mirrored, 'xx')
197+
self.assertRaises(ValueError, self.db.mirrored, 'xx')
198198

199199
def test_combining(self):
200200
self.assertEqual(self.db.combining('\uFFFE'), 0)
@@ -203,7 +203,7 @@ def test_combining(self):
203203
self.assertEqual(self.db.combining('\U00020000'), 0)
204204

205205
self.assertRaises(TypeError, self.db.combining)
206-
self.assertRaises(TypeError, self.db.combining, 'xx')
206+
self.assertRaises(ValueError, self.db.combining, 'xx')
207207

208208
def test_pr29(self):
209209
# https://www.unicode.org/review/pr-29.html
@@ -239,8 +239,8 @@ def test_east_asian_width(self):
239239
eaw = self.db.east_asian_width
240240
self.assertRaises(TypeError, eaw, b'a')
241241
self.assertRaises(TypeError, eaw, bytearray())
242-
self.assertRaises(TypeError, eaw, '')
243-
self.assertRaises(TypeError, eaw, 'ra')
242+
self.assertRaises(ValueError, eaw, '')
243+
self.assertRaises(ValueError, eaw, 'ra')
244244
self.assertEqual(eaw('\x1e'), 'N')
245245
self.assertEqual(eaw('\x20'), 'Na')
246246
self.assertEqual(eaw('\uC894'), 'W')

Modules/clinic/_testclinic.c.h

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Modules/clinic/arraymodule.c.h

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Modules/clinic/unicodedata.c.h

Lines changed: 11 additions & 11 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

PC/clinic/msvcrtmodule.c.h

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Tools/clinic/libclinic/converters.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -272,7 +272,7 @@ def parse_arg(self, argname: str, displayname: str, *, limited_capi: bool) -> st
272272
goto exit;
273273
}}}}
274274
if (PyUnicode_GET_LENGTH({argname}) != 1) {{{{
275-
{bad_argument}
275+
PyErr_SetString(PyExc_ValueError, "a single unicode character expected");
276276
goto exit;
277277
}}}}
278278
{paramname} = PyUnicode_READ_CHAR({argname}, 0);

0 commit comments

Comments
 (0)