From 957ca79e8ed2fd1377553d70b9a79232f84b122e Mon Sep 17 00:00:00 2001 From: kshitijk4poor <82637225+kshitijk4poor@users.noreply.github.com> Date: Sun, 19 Apr 2026 15:51:43 +0530 Subject: [PATCH] fix(feishu): drop dead helper and cover repeated fenced blocks --- gateway/platforms/feishu.py | 8 -------- tests/gateway/test_feishu.py | 23 +++++++++++++++++++++++ 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/gateway/platforms/feishu.py b/gateway/platforms/feishu.py index dc3d799c9..3b57db46d 100644 --- a/gateway/platforms/feishu.py +++ b/gateway/platforms/feishu.py @@ -492,14 +492,6 @@ def _build_markdown_post_rows(content: str) -> List[List[Dict[str, str]]]: return rows or [[{"tag": "md", "text": content}]] -def parse_feishu_post_content(raw_content: str) -> FeishuPostParseResult: - try: - parsed = json.loads(raw_content) if raw_content else {} - except json.JSONDecodeError: - return FeishuPostParseResult(text_content=FALLBACK_POST_TEXT) - return parse_feishu_post_payload(parsed) - - def parse_feishu_post_payload(payload: Any) -> FeishuPostParseResult: resolved = _resolve_post_payload(payload) if not resolved: diff --git a/tests/gateway/test_feishu.py b/tests/gateway/test_feishu.py index d5511c064..14ed9e171 100644 --- a/tests/gateway/test_feishu.py +++ b/tests/gateway/test_feishu.py @@ -2475,6 +2475,29 @@ class TestAdapterBehavior(unittest.TestCase): ], ) + @patch.dict(os.environ, {}, clear=True) + def test_build_post_payload_splits_multiple_fenced_code_blocks(self): + from gateway.config import PlatformConfig + from gateway.platforms.feishu import FeishuAdapter + + adapter = FeishuAdapter(PlatformConfig()) + payload = json.loads( + adapter._build_post_payload( + "before\n```python\nprint(1)\n```\nmiddle\n```json\n{}\n```\nafter" + ) + ) + + self.assertEqual( + payload["zh_cn"]["content"], + [ + [{"tag": "md", "text": "before"}], + [{"tag": "md", "text": "```python\nprint(1)\n```"}], + [{"tag": "md", "text": "middle"}], + [{"tag": "md", "text": "```json\n{}\n```"}], + [{"tag": "md", "text": "after"}], + ], + ) + @patch.dict(os.environ, {}, clear=True) def test_send_falls_back_to_text_when_post_payload_is_rejected(self): from gateway.config import PlatformConfig