@@ -263,14 +263,82 @@ def test_core_string_lax(benchmark):
263263 benchmark (validator .validate_python , input_str )
264264
265265
266+ @pytest .mark .benchmark (group = 'string' )
267+ def test_core_string_lax_wrong (benchmark ):
268+ validator = SchemaValidator (core_schema .str_schema ())
269+
270+ with pytest .raises (ValidationError , match = 'Input should be a valid string' ):
271+ validator .validate_python (123 )
272+
273+ @benchmark
274+ def t ():
275+ try :
276+ validator .validate_python (123 )
277+ except ValidationError :
278+ pass
279+
280+
266281@pytest .mark .benchmark (group = 'string' )
267282def test_core_string_strict (benchmark ):
268283 validator = SchemaValidator (core_schema .str_schema (strict = True ))
269284 input_str = 'Hello ' * 20
270285
271286 assert validator .validate_python (input_str ) == input_str
272287
273- benchmark (validator .validate_python , 'foo' )
288+ benchmark (validator .validate_python , input_str )
289+
290+
291+ @pytest .mark .benchmark (group = 'string' )
292+ def test_core_string_strict_wrong (benchmark ):
293+ validator = SchemaValidator (core_schema .str_schema (strict = True ))
294+
295+ with pytest .raises (ValidationError , match = 'Input should be a valid string' ):
296+ validator .validate_python (123 )
297+
298+ @benchmark
299+ def t ():
300+ try :
301+ validator .validate_python (123 )
302+ except ValidationError :
303+ pass
304+
305+
306+ @pytest .mark .benchmark (group = 'isinstance-string' )
307+ def test_isinstance_string_lax_true (benchmark ):
308+ validator = SchemaValidator (core_schema .str_schema ())
309+ input_str = 'Hello ' * 20
310+
311+ assert validator .isinstance_python (input_str ) is True
312+
313+ benchmark (validator .isinstance_python , input_str )
314+
315+
316+ @pytest .mark .benchmark (group = 'isinstance-string' )
317+ def test_isinstance_string_lax_false (benchmark ):
318+ validator = SchemaValidator (core_schema .str_schema ())
319+
320+ assert validator .isinstance_python (123 ) is False
321+
322+ benchmark (validator .isinstance_python , 123 )
323+
324+
325+ @pytest .mark .benchmark (group = 'isinstance-string' )
326+ def test_isinstance_string_strict_true (benchmark ):
327+ validator = SchemaValidator (core_schema .str_schema (strict = True ))
328+ input_str = 'Hello ' * 20
329+
330+ assert validator .isinstance_python (input_str ) is True
331+
332+ benchmark (validator .isinstance_python , input_str )
333+
334+
335+ @pytest .mark .benchmark (group = 'isinstance-string' )
336+ def test_isinstance_string_strict_false (benchmark ):
337+ validator = SchemaValidator (core_schema .str_schema (strict = True ))
338+
339+ assert validator .isinstance_python (123 ) is False
340+
341+ benchmark (validator .isinstance_python , 123 )
274342
275343
276344@pytest .fixture
0 commit comments