@@ -1156,6 +1156,63 @@ def test_rpartition(self):
11561156 self .checkraises (ValueError , S , 'rpartition' , '' )
11571157 self .checkraises (TypeError , S , 'rpartition' , None )
11581158
1159+ def test_none_arguments (self ):
1160+ # issue 11828
1161+ s = 'hello'
1162+ self .checkequal (2 , s , 'find' , 'l' , None )
1163+ self .checkequal (3 , s , 'find' , 'l' , - 2 , None )
1164+ self .checkequal (2 , s , 'find' , 'l' , None , - 2 )
1165+ self .checkequal (0 , s , 'find' , 'h' , None , None )
1166+
1167+ self .checkequal (3 , s , 'rfind' , 'l' , None )
1168+ self .checkequal (3 , s , 'rfind' , 'l' , - 2 , None )
1169+ self .checkequal (2 , s , 'rfind' , 'l' , None , - 2 )
1170+ self .checkequal (0 , s , 'rfind' , 'h' , None , None )
1171+
1172+ self .checkequal (2 , s , 'index' , 'l' , None )
1173+ self .checkequal (3 , s , 'index' , 'l' , - 2 , None )
1174+ self .checkequal (2 , s , 'index' , 'l' , None , - 2 )
1175+ self .checkequal (0 , s , 'index' , 'h' , None , None )
1176+
1177+ self .checkequal (3 , s , 'rindex' , 'l' , None )
1178+ self .checkequal (3 , s , 'rindex' , 'l' , - 2 , None )
1179+ self .checkequal (2 , s , 'rindex' , 'l' , None , - 2 )
1180+ self .checkequal (0 , s , 'rindex' , 'h' , None , None )
1181+
1182+ self .checkequal (2 , s , 'count' , 'l' , None )
1183+ self .checkequal (1 , s , 'count' , 'l' , - 2 , None )
1184+ self .checkequal (1 , s , 'count' , 'l' , None , - 2 )
1185+ self .checkequal (0 , s , 'count' , 'x' , None , None )
1186+
1187+ self .checkequal (True , s , 'endswith' , 'o' , None )
1188+ self .checkequal (True , s , 'endswith' , 'lo' , - 2 , None )
1189+ self .checkequal (True , s , 'endswith' , 'l' , None , - 2 )
1190+ self .checkequal (False , s , 'endswith' , 'x' , None , None )
1191+
1192+ self .checkequal (True , s , 'startswith' , 'h' , None )
1193+ self .checkequal (True , s , 'startswith' , 'l' , - 2 , None )
1194+ self .checkequal (True , s , 'startswith' , 'h' , None , - 2 )
1195+ self .checkequal (False , s , 'startswith' , 'x' , None , None )
1196+
1197+ def test_find_etc_raise_correct_error_messages (self ):
1198+ # issue 11828
1199+ s = 'hello'
1200+ x = 'x'
1201+ self .assertRaisesRegexp (TypeError , r'^find\(' , s .find ,
1202+ x , None , None , None )
1203+ self .assertRaisesRegexp (TypeError , r'^rfind\(' , s .rfind ,
1204+ x , None , None , None )
1205+ self .assertRaisesRegexp (TypeError , r'^index\(' , s .index ,
1206+ x , None , None , None )
1207+ self .assertRaisesRegexp (TypeError , r'^rindex\(' , s .rindex ,
1208+ x , None , None , None )
1209+ self .assertRaisesRegexp (TypeError , r'^count\(' , s .count ,
1210+ x , None , None , None )
1211+ self .assertRaisesRegexp (TypeError , r'^startswith\(' , s .startswith ,
1212+ x , None , None , None )
1213+ self .assertRaisesRegexp (TypeError , r'^endswith\(' , s .endswith ,
1214+ x , None , None , None )
1215+
11591216
11601217class MixinStrUnicodeTest :
11611218 # Additional tests that only work with str and unicode.
0 commit comments