Browse Source

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.
pull/9921/head
Serhiy Storchaka 10 years ago
parent
commit
f9efb8b18b
  1. 1
      Lib/test/test_bytes.py
  2. 2
      Objects/bytes_methods.c

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

2
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;

Loading…
Cancel
Save