diff options
author | Jesus Cea <jcea@jcea.es> | 2011-04-20 17:09:23 +0200 |
---|---|---|
committer | Jesus Cea <jcea@jcea.es> | 2011-04-20 17:09:23 +0200 |
commit | ac4515063c18157645d135bca8c4cf39542ccd6e (patch) | |
tree | a9f65e370ab063ec2c611215da1525fdf247c035 /Lib/test/test_bytes.py | |
parent | Issue #11875: Alter the previous fix to work better with subclasses (diff) | |
download | cpython-ac4515063c18157645d135bca8c4cf39542ccd6e.tar.gz cpython-ac4515063c18157645d135bca8c4cf39542ccd6e.tar.bz2 cpython-ac4515063c18157645d135bca8c4cf39542ccd6e.zip |
startswith and endswith don't accept None as slice index. Patch by Torsten Becker. (closes #11828)
Diffstat (limited to 'Lib/test/test_bytes.py')
-rw-r--r-- | Lib/test/test_bytes.py | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/Lib/test/test_bytes.py b/Lib/test/test_bytes.py index 8b964ca89f0..a607bef2584 100644 --- a/Lib/test/test_bytes.py +++ b/Lib/test/test_bytes.py @@ -459,6 +459,68 @@ class BaseBytesTest(unittest.TestCase): self.assertRaises(ValueError, self.type2test.maketrans, b'abc', b'xyzq') self.assertRaises(TypeError, self.type2test.maketrans, 'abc', 'def') + def test_none_arguments(self): + # issue 11828 + b = self.type2test(b'hello') + l = self.type2test(b'l') + h = self.type2test(b'h') + x = self.type2test(b'x') + o = self.type2test(b'o') + + self.assertEqual(2, b.find(l, None)) + self.assertEqual(3, b.find(l, -2, None)) + self.assertEqual(2, b.find(l, None, -2)) + self.assertEqual(0, b.find(h, None, None)) + + self.assertEqual(3, b.rfind(l, None)) + self.assertEqual(3, b.rfind(l, -2, None)) + self.assertEqual(2, b.rfind(l, None, -2)) + self.assertEqual(0, b.rfind(h, None, None)) + + self.assertEqual(2, b.index(l, None)) + self.assertEqual(3, b.index(l, -2, None)) + self.assertEqual(2, b.index(l, None, -2)) + self.assertEqual(0, b.index(h, None, None)) + + self.assertEqual(3, b.rindex(l, None)) + self.assertEqual(3, b.rindex(l, -2, None)) + self.assertEqual(2, b.rindex(l, None, -2)) + self.assertEqual(0, b.rindex(h, None, None)) + + self.assertEqual(2, b.count(l, None)) + self.assertEqual(1, b.count(l, -2, None)) + self.assertEqual(1, b.count(l, None, -2)) + self.assertEqual(0, b.count(x, None, None)) + + self.assertEqual(True, b.endswith(o, None)) + self.assertEqual(True, b.endswith(o, -2, None)) + self.assertEqual(True, b.endswith(l, None, -2)) + self.assertEqual(False, b.endswith(x, None, None)) + + self.assertEqual(True, b.startswith(h, None)) + self.assertEqual(True, b.startswith(l, -2, None)) + self.assertEqual(True, b.startswith(h, None, -2)) + self.assertEqual(False, b.startswith(x, None, None)) + + def test_find_etc_raise_correct_error_messages(self): + # issue 11828 + b = self.type2test(b'hello') + x = self.type2test(b'x') + self.assertRaisesRegexp(TypeError, r'\bfind\b', b.find, + x, None, None, None) + self.assertRaisesRegexp(TypeError, r'\brfind\b', b.rfind, + x, None, None, None) + self.assertRaisesRegexp(TypeError, r'\bindex\b', b.index, + x, None, None, None) + self.assertRaisesRegexp(TypeError, r'\brindex\b', b.rindex, + x, None, None, None) + self.assertRaisesRegexp(TypeError, r'\bcount\b', b.count, + x, None, None, None) + self.assertRaisesRegexp(TypeError, r'\bstartswith\b', b.startswith, + x, None, None, None) + self.assertRaisesRegexp(TypeError, r'\bendswith\b', b.endswith, + x, None, None, None) + class BytesTest(BaseBytesTest): type2test = bytes |