[3.13] gh-131357: Add some extra tests for empty bytes and bytearray (GH-134458) (#134490)

gh-131357: Add some extra tests for empty bytes and bytearray (GH-134458)
(cherry picked from commit 7309eb60c0)

Co-authored-by: Sergey Miryanov <sergey.miryanov@gmail.com>
This commit is contained in:
Miss Islington (bot) 2025-05-22 09:28:44 +02:00 committed by GitHub
parent 55aba16059
commit 044fe0b2e1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 9 additions and 0 deletions

View file

@ -66,6 +66,7 @@ def test_fromobject(self):
# Test PyByteArray_FromObject() # Test PyByteArray_FromObject()
fromobject = _testlimitedcapi.bytearray_fromobject fromobject = _testlimitedcapi.bytearray_fromobject
self.assertEqual(fromobject(b''), bytearray(b''))
self.assertEqual(fromobject(b'abc'), bytearray(b'abc')) self.assertEqual(fromobject(b'abc'), bytearray(b'abc'))
self.assertEqual(fromobject(bytearray(b'abc')), bytearray(b'abc')) self.assertEqual(fromobject(bytearray(b'abc')), bytearray(b'abc'))
self.assertEqual(fromobject(ByteArraySubclass(b'abc')), bytearray(b'abc')) self.assertEqual(fromobject(ByteArraySubclass(b'abc')), bytearray(b'abc'))
@ -115,6 +116,7 @@ def test_concat(self):
self.assertEqual(concat(b'abc', bytearray(b'def')), bytearray(b'abcdef')) self.assertEqual(concat(b'abc', bytearray(b'def')), bytearray(b'abcdef'))
self.assertEqual(concat(bytearray(b'abc'), b''), bytearray(b'abc')) self.assertEqual(concat(bytearray(b'abc'), b''), bytearray(b'abc'))
self.assertEqual(concat(b'', bytearray(b'def')), bytearray(b'def')) self.assertEqual(concat(b'', bytearray(b'def')), bytearray(b'def'))
self.assertEqual(concat(bytearray(b''), bytearray(b'')), bytearray(b''))
self.assertEqual(concat(memoryview(b'xabcy')[1:4], b'def'), self.assertEqual(concat(memoryview(b'xabcy')[1:4], b'def'),
bytearray(b'abcdef')) bytearray(b'abcdef'))
self.assertEqual(concat(b'abc', memoryview(b'xdefy')[1:4]), self.assertEqual(concat(b'abc', memoryview(b'xdefy')[1:4]),
@ -150,6 +152,10 @@ def test_resize(self):
self.assertEqual(resize(ba, 0), 0) self.assertEqual(resize(ba, 0), 0)
self.assertEqual(ba, bytearray()) self.assertEqual(ba, bytearray())
ba = bytearray(b'')
self.assertEqual(resize(ba, 0), 0)
self.assertEqual(ba, bytearray())
ba = ByteArraySubclass(b'abcdef') ba = ByteArraySubclass(b'abcdef')
self.assertEqual(resize(ba, 3), 0) self.assertEqual(resize(ba, 3), 0)
self.assertEqual(ba, bytearray(b'abc')) self.assertEqual(ba, bytearray(b'abc'))

View file

@ -81,6 +81,7 @@ def test_fromobject(self):
# Test PyBytes_FromObject() # Test PyBytes_FromObject()
fromobject = _testlimitedcapi.bytes_fromobject fromobject = _testlimitedcapi.bytes_fromobject
self.assertEqual(fromobject(b''), b'')
self.assertEqual(fromobject(b'abc'), b'abc') self.assertEqual(fromobject(b'abc'), b'abc')
self.assertEqual(fromobject(bytearray(b'abc')), b'abc') self.assertEqual(fromobject(bytearray(b'abc')), b'abc')
self.assertEqual(fromobject(BytesSubclass(b'abc')), b'abc') self.assertEqual(fromobject(BytesSubclass(b'abc')), b'abc')
@ -138,6 +139,7 @@ def test_repr(self):
# Test PyBytes_Repr() # Test PyBytes_Repr()
bytes_repr = _testlimitedcapi.bytes_repr bytes_repr = _testlimitedcapi.bytes_repr
self.assertEqual(bytes_repr(b'', 0), r"""b''""")
self.assertEqual(bytes_repr(b'''abc''', 0), r"""b'abc'""") self.assertEqual(bytes_repr(b'''abc''', 0), r"""b'abc'""")
self.assertEqual(bytes_repr(b'''abc''', 1), r"""b'abc'""") self.assertEqual(bytes_repr(b'''abc''', 1), r"""b'abc'""")
self.assertEqual(bytes_repr(b'''a'b"c"d''', 0), r"""b'a\'b"c"d'""") self.assertEqual(bytes_repr(b'''a'b"c"d''', 0), r"""b'a\'b"c"d'""")
@ -197,6 +199,7 @@ def test_decodeescape(self):
"""Test PyBytes_DecodeEscape()""" """Test PyBytes_DecodeEscape()"""
decodeescape = _testlimitedcapi.bytes_decodeescape decodeescape = _testlimitedcapi.bytes_decodeescape
self.assertEqual(decodeescape(b''), b'')
self.assertEqual(decodeescape(b'abc'), b'abc') self.assertEqual(decodeescape(b'abc'), b'abc')
self.assertEqual(decodeescape(br'\t\n\r\x0b\x0c\x00\\\'\"'), self.assertEqual(decodeescape(br'\t\n\r\x0b\x0c\x00\\\'\"'),
b'''\t\n\r\v\f\0\\'"''') b'''\t\n\r\v\f\0\\'"''')