mirror of https://github.com/python/cpython
Issue #26764: Fixed SystemError in bytes.__rmod__.
This commit is contained in:
parent
cda80940ed
commit
c9a59e6e4f
|
@ -483,26 +483,33 @@ class BaseBytesTest:
|
||||||
self.assertRaises(ValueError, b.rindex, w, 1, 3)
|
self.assertRaises(ValueError, b.rindex, w, 1, 3)
|
||||||
|
|
||||||
def test_mod(self):
|
def test_mod(self):
|
||||||
b = b'hello, %b!'
|
b = self.type2test(b'hello, %b!')
|
||||||
orig = b
|
orig = b
|
||||||
b = b % b'world'
|
b = b % b'world'
|
||||||
self.assertEqual(b, b'hello, world!')
|
self.assertEqual(b, b'hello, world!')
|
||||||
self.assertEqual(orig, b'hello, %b!')
|
self.assertEqual(orig, b'hello, %b!')
|
||||||
self.assertFalse(b is orig)
|
self.assertFalse(b is orig)
|
||||||
b = b'%s / 100 = %d%%'
|
b = self.type2test(b'%s / 100 = %d%%')
|
||||||
a = b % (b'seventy-nine', 79)
|
a = b % (b'seventy-nine', 79)
|
||||||
self.assertEqual(a, b'seventy-nine / 100 = 79%')
|
self.assertEqual(a, b'seventy-nine / 100 = 79%')
|
||||||
|
self.assertIs(type(a), bytes)
|
||||||
|
|
||||||
def test_imod(self):
|
def test_imod(self):
|
||||||
b = b'hello, %b!'
|
b = self.type2test(b'hello, %b!')
|
||||||
orig = b
|
orig = b
|
||||||
b %= b'world'
|
b %= b'world'
|
||||||
self.assertEqual(b, b'hello, world!')
|
self.assertEqual(b, b'hello, world!')
|
||||||
self.assertEqual(orig, b'hello, %b!')
|
self.assertEqual(orig, b'hello, %b!')
|
||||||
self.assertFalse(b is orig)
|
self.assertFalse(b is orig)
|
||||||
b = b'%s / 100 = %d%%'
|
b = self.type2test(b'%s / 100 = %d%%')
|
||||||
b %= (b'seventy-nine', 79)
|
b %= (b'seventy-nine', 79)
|
||||||
self.assertEqual(b, b'seventy-nine / 100 = 79%')
|
self.assertEqual(b, b'seventy-nine / 100 = 79%')
|
||||||
|
self.assertIs(type(b), bytes)
|
||||||
|
|
||||||
|
def test_rmod(self):
|
||||||
|
with self.assertRaises(TypeError):
|
||||||
|
object() % self.type2test(b'abc')
|
||||||
|
self.assertIs(self.type2test(b'abc').__rmod__('%r'), NotImplemented)
|
||||||
|
|
||||||
def test_replace(self):
|
def test_replace(self):
|
||||||
b = self.type2test(b'mississippi')
|
b = self.type2test(b'mississippi')
|
||||||
|
@ -1064,28 +1071,6 @@ class ByteArrayTest(BaseBytesTest, unittest.TestCase):
|
||||||
b[8:] = b
|
b[8:] = b
|
||||||
self.assertEqual(b, bytearray(list(range(8)) + list(range(256))))
|
self.assertEqual(b, bytearray(list(range(8)) + list(range(256))))
|
||||||
|
|
||||||
def test_mod(self):
|
|
||||||
b = bytearray(b'hello, %b!')
|
|
||||||
orig = b
|
|
||||||
b = b % b'world'
|
|
||||||
self.assertEqual(b, b'hello, world!')
|
|
||||||
self.assertEqual(orig, bytearray(b'hello, %b!'))
|
|
||||||
self.assertFalse(b is orig)
|
|
||||||
b = bytearray(b'%s / 100 = %d%%')
|
|
||||||
a = b % (b'seventy-nine', 79)
|
|
||||||
self.assertEqual(a, bytearray(b'seventy-nine / 100 = 79%'))
|
|
||||||
|
|
||||||
def test_imod(self):
|
|
||||||
b = bytearray(b'hello, %b!')
|
|
||||||
orig = b
|
|
||||||
b %= b'world'
|
|
||||||
self.assertEqual(b, b'hello, world!')
|
|
||||||
self.assertEqual(orig, bytearray(b'hello, %b!'))
|
|
||||||
self.assertFalse(b is orig)
|
|
||||||
b = bytearray(b'%s / 100 = %d%%')
|
|
||||||
b %= (b'seventy-nine', 79)
|
|
||||||
self.assertEqual(b, bytearray(b'seventy-nine / 100 = 79%'))
|
|
||||||
|
|
||||||
def test_iconcat(self):
|
def test_iconcat(self):
|
||||||
b = bytearray(b"abc")
|
b = bytearray(b"abc")
|
||||||
b1 = b
|
b1 = b
|
||||||
|
|
|
@ -3282,15 +3282,13 @@ bytes_methods[] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
bytes_mod(PyObject *self, PyObject *args)
|
bytes_mod(PyObject *self, PyObject *arg)
|
||||||
{
|
{
|
||||||
if (self == NULL || !PyBytes_Check(self)) {
|
if (!PyBytes_Check(self)) {
|
||||||
PyErr_BadInternalCall();
|
Py_RETURN_NOTIMPLEMENTED;
|
||||||
return NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return _PyBytes_FormatEx(PyBytes_AS_STRING(self), PyBytes_GET_SIZE(self),
|
return _PyBytes_FormatEx(PyBytes_AS_STRING(self), PyBytes_GET_SIZE(self),
|
||||||
args, 0);
|
arg, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static PyNumberMethods bytes_as_number = {
|
static PyNumberMethods bytes_as_number = {
|
||||||
|
|
Loading…
Reference in New Issue