mirror of
https://github.com/primedigitaltech/market-assistant.git
synced 2026-07-21 23:41:39 +08:00
57 lines
2.1 KiB
Python
57 lines
2.1 KiB
Python
"""市场策略草稿 Markdown(规则,无 LLM)。"""
|
||
from __future__ import annotations
|
||
|
||
from django.test import SimpleTestCase
|
||
|
||
from pipeline.strategy_draft import build_strategy_draft_markdown
|
||
|
||
|
||
class StrategyDraftTests(SimpleTestCase):
|
||
def test_build_contains_sections_and_notes(self) -> None:
|
||
brief = {
|
||
"schema_version": 1,
|
||
"keyword": "测试K",
|
||
"batch_label": "b1",
|
||
"scope": {"merged_sku_count": 2, "comment_flat_rows": 5},
|
||
"strategy_hints": ["假设A"],
|
||
}
|
||
md = build_strategy_draft_markdown(
|
||
job_id=99,
|
||
keyword="测试K",
|
||
brief=brief,
|
||
business_notes="重点:华东",
|
||
generated_at_iso="2026-04-09T12:00:00",
|
||
)
|
||
self.assertIn("测试K", md)
|
||
self.assertIn("任务 ID**:99", md)
|
||
self.assertIn("假设A", md)
|
||
self.assertIn("重点:华东", md)
|
||
self.assertIn("战略背景与目标", md)
|
||
self.assertIn("市场策略制定草稿", md)
|
||
|
||
def test_strategy_decisions_merge(self) -> None:
|
||
brief = {"schema_version": 1, "keyword": "K", "batch_label": "b"}
|
||
decisions = {
|
||
"product_role": "追赶型",
|
||
"positioning_choice": "mid",
|
||
"competitive_stance": "flank",
|
||
"pillar_product": "做低糖配方",
|
||
"ack_risk_keywords": True,
|
||
"ack_risk_price": False,
|
||
"ack_risk_concentration": True,
|
||
}
|
||
md = build_strategy_draft_markdown(
|
||
job_id=1,
|
||
keyword="K",
|
||
brief=brief,
|
||
strategy_decisions=decisions,
|
||
)
|
||
self.assertIn("**本品角色**:追赶型", md)
|
||
self.assertIn("- [x] **卡腰**", md)
|
||
self.assertIn("- [ ] **贴顶**", md)
|
||
self.assertIn("侧翼切入", md)
|
||
self.assertIn("| 产品 | 做低糖配方 |", md)
|
||
self.assertIn("- [x] 关注词/场景是否**以偏概全**", md)
|
||
self.assertIn("- [ ] 价格带是否含大促", md)
|
||
self.assertIn("- [x] 列表集中度与深入样本品牌是否**矛盾**", md)
|