File tree Expand file tree Collapse file tree 2 files changed +27
-0
lines changed
openapi_core/validation/request
tests/integration/validation Expand file tree Collapse file tree 2 files changed +27
-0
lines changed Original file line number Diff line number Diff line change @@ -21,6 +21,8 @@ class RequestValidationError(ValidationError):
2121
2222class RequestBodyValidationError (RequestValidationError ):
2323 def __str__ (self ) -> str :
24+ if self .__cause__ is not None :
25+ return f"Request body validation error: { self .__cause__ } "
2426 return "Request body validation error"
2527
2628
Original file line number Diff line number Diff line change @@ -167,6 +167,31 @@ def test_request_validator_urlencoded_json_part_strict() -> None:
167167 validator .validate (request )
168168
169169
170+ def test_request_validator_error_message_includes_cause_details () -> None :
171+ spec = _spec_schema_path ()
172+ validator = V30RequestValidator (spec )
173+
174+ request_json = {
175+ "id" : "123e4567-e89b-12d3-a456-426614174000" ,
176+ "username" : "Test User" ,
177+ "age" : "30" ,
178+ }
179+ request = MockRequest (
180+ "http://example.com" ,
181+ "post" ,
182+ "/users" ,
183+ content_type = "application/json" ,
184+ data = json .dumps (request_json ).encode ("utf-8" ),
185+ )
186+
187+ with pytest .raises (InvalidRequestBody ) as exc_info :
188+ validator .validate (request )
189+
190+ error_message = str (exc_info .value )
191+ assert error_message .startswith ("Request body validation error:" )
192+ assert "'30' is not of type 'integer'" in error_message
193+
194+
170195def test_response_validator_strict_json_nested_types () -> None :
171196 """Test that nested JSON structures (arrays, objects) remain strict."""
172197 spec_dict = {
You can’t perform that action at this time.
0 commit comments