Skip to content

Commit f9efb8b

Browse files
Issue python#27474: Unified error messages in the __contains__ method of bytes and
bytearray for integers in and out of the Py_ssize_t range. Patch by Xiang Zhang.
1 parent 95750b1 commit f9efb8b

2 files changed

Lines changed: 2 additions & 1 deletion

File tree

Lib/test/test_bytes.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -269,6 +269,7 @@ def test_contains(self):
269269
self.assertNotIn(200, b)
270270
self.assertRaises(ValueError, lambda: 300 in b)
271271
self.assertRaises(ValueError, lambda: -1 in b)
272+
self.assertRaises(ValueError, lambda: sys.maxsize+1 in b)
272273
self.assertRaises(TypeError, lambda: None in b)
273274
self.assertRaises(TypeError, lambda: float(ord('a')) in b)
274275
self.assertRaises(TypeError, lambda: "a" in b)

Objects/bytes_methods.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -645,7 +645,7 @@ _Py_bytes_count(const char *str, Py_ssize_t len, PyObject *args)
645645
int
646646
_Py_bytes_contains(const char *str, Py_ssize_t len, PyObject *arg)
647647
{
648-
Py_ssize_t ival = PyNumber_AsSsize_t(arg, PyExc_ValueError);
648+
Py_ssize_t ival = PyNumber_AsSsize_t(arg, NULL);
649649
if (ival == -1 && PyErr_Occurred()) {
650650
Py_buffer varg;
651651
Py_ssize_t pos;

0 commit comments

Comments
 (0)