mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	startswith and endswith don't accept None as slice index. Patch by Torsten Becker. (closes #11828)
This commit is contained in:
		
							parent
							
								
									d07eaf177c
								
							
						
					
					
						commit
						ac4515063c
					
				
					 8 changed files with 197 additions and 64 deletions
				
			
		|  | @ -459,6 +459,68 @@ def test_maketrans(self): | |||
|         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 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Jesus Cea
						Jesus Cea