diff --git a/messaging/handler.py b/messaging/handler.py index ed19098..5614927 100644 --- a/messaging/handler.py +++ b/messaging/handler.py @@ -422,9 +422,7 @@ class ClaudeMessageHandler: chat_id, status_msg_id, display, parse_mode="MarkdownV2" ) except Exception as e: - logger.warning( - f"Failed to update Telegram for node {node_id}: {e}" - ) + logger.warning(f"Failed to update Telegram for node {node_id}: {e}") try: try: diff --git a/tests/test_handler_markdown_and_status_edges.py b/tests/test_handler_markdown_and_status_edges.py index a2bef8e..ed827e5 100644 --- a/tests/test_handler_markdown_and_status_edges.py +++ b/tests/test_handler_markdown_and_status_edges.py @@ -259,7 +259,11 @@ async def test_update_ui_handles_transcript_render_exception(): session_store = MagicMock() async def _mock_start_task(*args, **kwargs): - yield {"type": "content_block_delta", "index": 0, "delta": {"type": "text_delta", "text": "hi"}} + yield { + "type": "content_block_delta", + "index": 0, + "delta": {"type": "text_delta", "text": "hi"}, + } yield {"type": "complete", "status": "success"} mock_session = MagicMock() @@ -283,9 +287,7 @@ async def test_update_ui_handles_transcript_render_exception(): ) node = MessageNode(node_id="n1", incoming=incoming, status_message_id="s1") - with patch.object( - handler, "_create_transcript_and_render_ctx" - ) as mock_create: + with patch.object(handler, "_create_transcript_and_render_ctx") as mock_create: transcript = MagicMock() transcript.render = MagicMock(side_effect=ValueError("render failed")) render_ctx = MagicMock() @@ -361,14 +363,24 @@ async def test_process_parsed_event_malformed_content_continues(): async def test_handler_update_ui_edit_failure_does_not_crash(): """When queue_edit_message raises during streaming, _process_node continues and completes.""" platform = MagicMock() - platform.queue_edit_message = AsyncMock(side_effect=RuntimeError("Telegram API error")) + platform.queue_edit_message = AsyncMock( + side_effect=RuntimeError("Telegram API error") + ) platform.fire_and_forget = MagicMock( side_effect=lambda c: getattr(c, "close", lambda: None)() ) async def _mock_start_task(*args, **kwargs): - yield {"type": "content_block_delta", "index": 0, "delta": {"type": "text_delta", "text": "Hello"}} - yield {"type": "content_block_delta", "index": 0, "delta": {"type": "text_delta", "text": " world"}} + yield { + "type": "content_block_delta", + "index": 0, + "delta": {"type": "text_delta", "text": "Hello"}, + } + yield { + "type": "content_block_delta", + "index": 0, + "delta": {"type": "text_delta", "text": " world"}, + } yield {"type": "complete", "status": "success"} mock_session = MagicMock() diff --git a/tests/test_limiter.py b/tests/test_limiter.py index bcaa83d..35e6e17 100644 --- a/tests/test_limiter.py +++ b/tests/test_limiter.py @@ -252,12 +252,8 @@ class TestMessagingRateLimiter: async def fail_task(): raise RuntimeError("last task failed") - future1 = asyncio.create_task( - limiter.enqueue(ok_task, dedup_key="fail_key") - ) - future2 = asyncio.create_task( - limiter.enqueue(fail_task, dedup_key="fail_key") - ) + future1 = asyncio.create_task(limiter.enqueue(ok_task, dedup_key="fail_key")) + future2 = asyncio.create_task(limiter.enqueue(fail_task, dedup_key="fail_key")) with pytest.raises(RuntimeError, match="last task failed"): await future1 diff --git a/tests/test_streaming_errors.py b/tests/test_streaming_errors.py index f93a69f..a48312a 100644 --- a/tests/test_streaming_errors.py +++ b/tests/test_streaming_errors.py @@ -509,7 +509,7 @@ class TestStreamChunkEdgeCases: tc2 = { "index": 0, "id": "call_malformed", - "function": {"name": None, "arguments": ' never valid }'}, + "function": {"name": None, "arguments": " never valid }"}, } events1 = list(provider._process_tool_call(tc1, sse)) diff --git a/tests/test_transcript.py b/tests/test_transcript.py index 2475a99..cf6066d 100644 --- a/tests/test_transcript.py +++ b/tests/test_transcript.py @@ -145,12 +145,11 @@ def test_transcript_render_segment_exception_skipped(): t.apply({"type": "text_chunk", "text": "after"}) bad_segment = t._segments[1] - original_render = bad_segment.render - def _raising_render(ctx): + def _raising_render(self, ctx): raise ValueError("render failed") - bad_segment.render = _raising_render + bad_segment.render = _raising_render # type: ignore[method-assign] out = t.render(_ctx(), limit_chars=3900, status=None) assert "before" in out