@@ -55,6 +55,13 @@ def model_type_from_log_record(record: LogRecord) -> str:
5555 return record .model_type # pyright: ignore[reportUnknownMemberType, reportUnknownVariableType, reportAttributeAccessIssue]
5656
5757
58+ def error_from_log_record (record : LogRecord ) -> str :
59+ if not hasattr (record , "error" ):
60+ msg = "Log record does not have an error attribute"
61+ raise ValueError (msg )
62+ return record .error # pyright: ignore[reportUnknownMemberType, reportUnknownVariableType, reportAttributeAccessIssue]
63+
64+
5865def errors_from_log_record (record : LogRecord ) -> list [str ]:
5966 if not hasattr (record , "errors" ):
6067 msg = "Log record does not have an errors attribute"
@@ -185,7 +192,7 @@ async def test_validation_error_logging(
185192
186193 errors = errors_from_log_record (record )
187194 assert len (errors ) == 1
188- assert "is_admin" in errors [0 ]
195+ assert "is_admin" in str ( errors [0 ])
189196
190197 async def test_list_validation_error_logging (
191198 self , product_list_adapter : PydanticAdapter [list [Product ]], store : MemoryStore , caplog : pytest .LogCaptureFixture
@@ -208,6 +215,5 @@ async def test_list_validation_error_logging(
208215 assert record .levelname == "ERROR"
209216 assert "Missing 'items' wrapper" in record .message
210217 assert model_type_from_log_record (record ) == "Pydantic model"
211- errors = errors_from_log_record (record )
212- assert len (errors ) == 1
213- assert "missing 'items' wrapper" in errors [0 ]
218+ errors = error_from_log_record (record )
219+ assert "missing 'items' wrapper" in str (errors )
0 commit comments