From ddad44a8da39d02d2c5b8f6b8045bd9486023be2 Mon Sep 17 00:00:00 2001 From: redshift <213178690+1ftredsh@users.noreply.github.com> Date: Thu, 17 Sep 2026 20:10:31 +0200 Subject: [PATCH] fix(tests): annotate extra= log attrs for mypy in EHBP finalize tests mypy flags each `record.` access as attr-defined: the FINALIZE fields are attached via logging's `extra=` payload, which the stdlib LogRecord stub does not declare. Annotate the assertions with `# type: ignore[attr-defined]`, matching the convention already used for the same pattern elsewhere (e.g. tests/unit/test_client_app_logging.py:105). Unblocks the backend-test jobs, which stopped at mypy before reaching pytest. --- tests/unit/test_ehbp_finalize_payment.py | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/tests/unit/test_ehbp_finalize_payment.py b/tests/unit/test_ehbp_finalize_payment.py index 6e428a7f..caf0a5aa 100644 --- a/tests/unit/test_ehbp_finalize_payment.py +++ b/tests/unit/test_ehbp_finalize_payment.py @@ -171,13 +171,14 @@ async def test_finalize_actual_cost_payment_logs_cache_tokens( ] assert len(finalize_records) == 1 record = finalize_records[0] - assert record.finalize_type == "ehbp_usage" - assert record.input_tokens == 5 - assert record.output_tokens == 20 - assert record.cache_read_input_tokens == 64 - assert record.cache_creation_input_tokens == 0 - assert record.cache_read_msats == 12 - assert record.cache_creation_msats == 0 + # finalize_type/input_tokens/... are attached via logging's extra= payload. + assert record.finalize_type == "ehbp_usage" # type: ignore[attr-defined] + assert record.input_tokens == 5 # type: ignore[attr-defined] + assert record.output_tokens == 20 # type: ignore[attr-defined] + assert record.cache_read_input_tokens == 64 # type: ignore[attr-defined] + assert record.cache_creation_input_tokens == 0 # type: ignore[attr-defined] + assert record.cache_read_msats == 12 # type: ignore[attr-defined] + assert record.cache_creation_msats == 0 # type: ignore[attr-defined] @pytest.mark.asyncio @@ -206,10 +207,10 @@ async def test_finalize_actual_cost_payment_logs_zero_cache_when_absent( ) record = next(record for record in records if record.getMessage() == "FINALIZE") - assert record.cache_read_input_tokens == 0 - assert record.cache_creation_input_tokens == 0 - assert record.cache_read_msats == 0 - assert record.cache_creation_msats == 0 + assert record.cache_read_input_tokens == 0 # type: ignore[attr-defined] + assert record.cache_creation_input_tokens == 0 # type: ignore[attr-defined] + assert record.cache_read_msats == 0 # type: ignore[attr-defined] + assert record.cache_creation_msats == 0 # type: ignore[attr-defined] @pytest.mark.asyncio