import unittest from ai_daily_report.assemble import assemble_markdown from ai_daily_report.models import NewsItem class MarkdownRenderingTests(unittest.TestCase): def test_blog_markdown_strips_double_blockquote_and_reference_markers(self): items = [ NewsItem( id="a", source_group="AI HOT", source_label="OpenAI:Blog", source_role="primary", source_priority=10, title_raw="测试模型发布", title_norm="测试模型发布", summary_raw="测试摘要", title="测试模型发布", summary="测试摘要", url="https://openai.com/blog/test", canonical_url="https://openai.com/blog/test", section="模型与能力", ) ] guide = {"theme": "> 主线判断:测试主线[1]", "threads": []} md, _ = assemble_markdown(items, guide) self.assertNotIn("## 导览", md) self.assertIn("## 模型与能力", md) self.assertIn("[OpenAI:Blog ↗](https://openai.com/blog/test)", md) self.assertNotIn("> >", md) self.assertNotIn("[1]", md) self.assertNotIn("主线判断", md) if __name__ == "__main__": unittest.main()