diff --git a/src/errors/validation_exception.rs b/src/errors/validation_exception.rs index aa07ef7b7..5d36851c2 100644 --- a/src/errors/validation_exception.rs +++ b/src/errors/validation_exception.rs @@ -110,7 +110,7 @@ impl ValidationError { } pub fn use_default_error() -> PyErr { - py_schema_error_type!("Uncaught UseDefault error, please check your usage of `default` validators.") + py_schema_error_type!("Uncaught `PydanticUseDefault` exception: the error was raised in a field validator and no default value is available for that field.") } fn maybe_add_cause(self_: PyRef<'_, Self>, py: Python) -> Option { diff --git a/tests/validators/test_with_default.py b/tests/validators/test_with_default.py index ca9b5802d..fd3ed0795 100644 --- a/tests/validators/test_with_default.py +++ b/tests/validators/test_with_default.py @@ -627,12 +627,18 @@ def val_func(v: Any, handler: core_schema.ValidatorFunctionWrapHandler) -> Any: validator = SchemaValidator( core_schema.with_default_schema(core_schema.no_info_wrap_validator_function(val_func, core_schema.int_schema())) ) - with pytest.raises(SchemaError, match='Uncaught UseDefault error, please check your usage of `default` validators'): + with pytest.raises( + SchemaError, + match='Uncaught `PydanticUseDefault` exception: the error was raised in a field validator and no default value is available for that field.', + ): validator.validate_python('') # same if there is no WithDefault validator validator = SchemaValidator(core_schema.no_info_wrap_validator_function(val_func, core_schema.int_schema())) - with pytest.raises(SchemaError, match='Uncaught UseDefault error, please check your usage of `default` validators'): + with pytest.raises( + SchemaError, + match='Uncaught `PydanticUseDefault` exception: the error was raised in a field validator and no default value is available for that field.', + ): validator.validate_python('')