mirror of
https://github.com/python/cpython.git
synced 2025-10-15 11:22:18 +00:00
[3.6] bpo-20047: Make bytearray methods partition() and rpartition() rejecting (GH-4158) (#4162)
separators that are not bytes-like objects..
(cherry picked from commit a2314283ff
)
This commit is contained in:
parent
0f1973d06e
commit
9ea5a3a45b
7 changed files with 85 additions and 34 deletions
|
@ -540,8 +540,16 @@ class BaseBytesTest:
|
|||
self.assertEqual(b.replace(b'i', b'a'), b'massassappa')
|
||||
self.assertEqual(b.replace(b'ss', b'x'), b'mixixippi')
|
||||
|
||||
def test_replace_int_error(self):
|
||||
self.assertRaises(TypeError, self.type2test(b'a b').replace, 32, b'')
|
||||
|
||||
def test_split_string_error(self):
|
||||
self.assertRaises(TypeError, self.type2test(b'a b').split, ' ')
|
||||
self.assertRaises(TypeError, self.type2test(b'a b').rsplit, ' ')
|
||||
|
||||
def test_split_int_error(self):
|
||||
self.assertRaises(TypeError, self.type2test(b'a b').split, 32)
|
||||
self.assertRaises(TypeError, self.type2test(b'a b').rsplit, 32)
|
||||
|
||||
def test_split_unicodewhitespace(self):
|
||||
for b in (b'a\x1Cb', b'a\x1Db', b'a\x1Eb', b'a\x1Fb'):
|
||||
|
@ -550,9 +558,6 @@ class BaseBytesTest:
|
|||
b = self.type2test(b"\x09\x0A\x0B\x0C\x0D\x1C\x1D\x1E\x1F")
|
||||
self.assertEqual(b.split(), [b'\x1c\x1d\x1e\x1f'])
|
||||
|
||||
def test_rsplit_string_error(self):
|
||||
self.assertRaises(TypeError, self.type2test(b'a b').rsplit, ' ')
|
||||
|
||||
def test_rsplit_unicodewhitespace(self):
|
||||
b = self.type2test(b"\x09\x0A\x0B\x0C\x0D\x1C\x1D\x1E\x1F")
|
||||
self.assertEqual(b.rsplit(), [b'\x1c\x1d\x1e\x1f'])
|
||||
|
@ -568,6 +573,14 @@ class BaseBytesTest:
|
|||
self.assertEqual(b.rpartition(b'i'), (b'mississipp', b'i', b''))
|
||||
self.assertEqual(b.rpartition(b'w'), (b'', b'', b'mississippi'))
|
||||
|
||||
def test_partition_string_error(self):
|
||||
self.assertRaises(TypeError, self.type2test(b'a b').partition, ' ')
|
||||
self.assertRaises(TypeError, self.type2test(b'a b').rpartition, ' ')
|
||||
|
||||
def test_partition_int_error(self):
|
||||
self.assertRaises(TypeError, self.type2test(b'a b').partition, 32)
|
||||
self.assertRaises(TypeError, self.type2test(b'a b').rpartition, 32)
|
||||
|
||||
def test_pickling(self):
|
||||
for proto in range(pickle.HIGHEST_PROTOCOL + 1):
|
||||
for b in b"", b"a", b"abc", b"\xffab\x80", b"\0\0\377\0\0":
|
||||
|
@ -600,9 +613,14 @@ class BaseBytesTest:
|
|||
self.assertEqual(self.type2test(b'abc').rstrip(memoryview(b'ac')), b'ab')
|
||||
|
||||
def test_strip_string_error(self):
|
||||
self.assertRaises(TypeError, self.type2test(b'abc').strip, 'b')
|
||||
self.assertRaises(TypeError, self.type2test(b'abc').lstrip, 'b')
|
||||
self.assertRaises(TypeError, self.type2test(b'abc').rstrip, 'b')
|
||||
self.assertRaises(TypeError, self.type2test(b'abc').strip, 'ac')
|
||||
self.assertRaises(TypeError, self.type2test(b'abc').lstrip, 'ac')
|
||||
self.assertRaises(TypeError, self.type2test(b'abc').rstrip, 'ac')
|
||||
|
||||
def test_strip_int_error(self):
|
||||
self.assertRaises(TypeError, self.type2test(b' abc ').strip, 32)
|
||||
self.assertRaises(TypeError, self.type2test(b' abc ').lstrip, 32)
|
||||
self.assertRaises(TypeError, self.type2test(b' abc ').rstrip, 32)
|
||||
|
||||
def test_center(self):
|
||||
# Fill character can be either bytes or bytearray (issue 12380)
|
||||
|
@ -625,6 +643,11 @@ class BaseBytesTest:
|
|||
self.assertEqual(b.rjust(7, fill_type(b'-')),
|
||||
self.type2test(b'----abc'))
|
||||
|
||||
def test_xjust_int_error(self):
|
||||
self.assertRaises(TypeError, self.type2test(b'abc').center, 7, 32)
|
||||
self.assertRaises(TypeError, self.type2test(b'abc').ljust, 7, 32)
|
||||
self.assertRaises(TypeError, self.type2test(b'abc').rjust, 7, 32)
|
||||
|
||||
def test_ord(self):
|
||||
b = self.type2test(b'\0A\x7f\x80\xff')
|
||||
self.assertEqual([ord(b[i:i+1]) for i in range(len(b))],
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue