From f9efb8b18b689ff5ef7f12e6124f21532d799516 Mon Sep 17 00:00:00 2001 From: Serhiy Storchaka Date: Sun, 10 Jul 2016 12:37:30 +0300 Subject: [PATCH] Issue #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. --- Lib/test/test_bytes.py | 1 + Objects/bytes_methods.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Lib/test/test_bytes.py b/Lib/test/test_bytes.py index 05dc26afaf1..129b4abf337 100644 --- a/Lib/test/test_bytes.py +++ b/Lib/test/test_bytes.py @@ -269,6 +269,7 @@ class BaseBytesTest: self.assertNotIn(200, b) self.assertRaises(ValueError, lambda: 300 in b) self.assertRaises(ValueError, lambda: -1 in b) + self.assertRaises(ValueError, lambda: sys.maxsize+1 in b) self.assertRaises(TypeError, lambda: None in b) self.assertRaises(TypeError, lambda: float(ord('a')) in b) self.assertRaises(TypeError, lambda: "a" in b) diff --git a/Objects/bytes_methods.c b/Objects/bytes_methods.c index d0f784ecd46..d7f061bcf09 100644 --- a/Objects/bytes_methods.c +++ b/Objects/bytes_methods.c @@ -645,7 +645,7 @@ _Py_bytes_count(const char *str, Py_ssize_t len, PyObject *args) int _Py_bytes_contains(const char *str, Py_ssize_t len, PyObject *arg) { - Py_ssize_t ival = PyNumber_AsSsize_t(arg, PyExc_ValueError); + Py_ssize_t ival = PyNumber_AsSsize_t(arg, NULL); if (ival == -1 && PyErr_Occurred()) { Py_buffer varg; Py_ssize_t pos;