From 6a9b6af3210fc009635f7cb7f1b19fc5023c23ba Mon Sep 17 00:00:00 2001 From: hub-gif <2487812171@qq.com> Date: Tue, 14 Apr 2026 14:26:23 +0800 Subject: [PATCH] test(pipeline): restore llm_keyword_suggest parse unit tests Made-with: Cursor --- backend/pipeline/tests/test_llm_keyword_suggest.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/backend/pipeline/tests/test_llm_keyword_suggest.py b/backend/pipeline/tests/test_llm_keyword_suggest.py index a148d95..0b121b4 100644 --- a/backend/pipeline/tests/test_llm_keyword_suggest.py +++ b/backend/pipeline/tests/test_llm_keyword_suggest.py @@ -59,6 +59,10 @@ class ParsePhrasesObjectTests(SimpleTestCase): raw = '{"phrases": ["低糖", "口感好"]}' self.assertEqual(_parse_phrases_object(raw), ["低糖", "口感好"]) + def test_strips_phrase_whitespace(self) -> None: + raw = '{"phrases": ["口感", "回购 "]}' + self.assertEqual(_parse_phrases_object(raw), ["口感", "回购"]) + def test_fenced_json(self) -> None: raw = '```json\n{"phrases": ["A", "B"]}\n```' self.assertEqual(_parse_phrases_object(raw), ["A", "B"]) @@ -85,6 +89,13 @@ class ParseScenariosObjectTests(SimpleTestCase): self.assertEqual(out[0]["label"], "A") self.assertEqual(out[0]["triggers"], ["触发甲", "触发乙"]) + def test_fenced_without_json_tag(self) -> None: + raw = '```\n{"scenarios": [{"label": "露营", "triggers": ["户外", "野餐"]}]}\n```' + out = _parse_scenarios_object(raw) + self.assertEqual(len(out), 1) + self.assertEqual(out[0]["label"], "露营") + self.assertEqual(out[0]["triggers"], ["户外", "野餐"]) + class SuggestFocusKeywordsTests(SimpleTestCase): def test_no_comments_returns_empty(self) -> None: