feat: 早报系统重构与功能增强
- 新增常驻调度器 daily/scheduler.py + run-scheduler.ps1(定时生成/推送) - 新增 daily/bridge_manager.py:Windows 兼容的 Cursor SDK 桥接 - 新增 skills/daily-featured-pick 首推 Skill 与叙事轴/去重逻辑 - 新闻抓取窗口、GitHub 搜索、企微 delta 模式等多项改进 - 补充设计文档与 superpowers 计划/规范 - 新增对应测试(scheduler、featured_pick、github_search、news_fetch_window 等) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,10 +1,19 @@
|
||||
# tests/test_featured_resolve.py
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
import random
|
||||
import tempfile
|
||||
import unittest
|
||||
from pathlib import Path
|
||||
from unittest.mock import patch
|
||||
|
||||
from daily.featured_pick import featured_identity_key, featured_resolve
|
||||
from daily.featured_pick import (
|
||||
featured_identity_key,
|
||||
featured_resolve,
|
||||
load_recent_featured_keys,
|
||||
load_yesterday_featured_key,
|
||||
)
|
||||
|
||||
|
||||
class FeaturedResolveTests(unittest.TestCase):
|
||||
@@ -78,6 +87,46 @@ class FeaturedResolveTests(unittest.TestCase):
|
||||
"foo/bar",
|
||||
)
|
||||
|
||||
def test_load_yesterday_falls_back_to_featured_pick(self):
|
||||
"""缺 featured_pick_key 时从 featured_pick.url 推导身份,避免连日重复首推。"""
|
||||
with tempfile.TemporaryDirectory() as tmp:
|
||||
out = Path(tmp)
|
||||
payload = {
|
||||
"data": {
|
||||
"date": "2026-07-13",
|
||||
"featured_pick": {
|
||||
"type": "github",
|
||||
"title": "headroom",
|
||||
"url": "https://github.com/headroomlabs-ai/headroom",
|
||||
},
|
||||
}
|
||||
}
|
||||
(out / "2026-07-13.data.json").write_text(
|
||||
json.dumps(payload, ensure_ascii=False), encoding="utf-8"
|
||||
)
|
||||
with patch("daily.featured_pick.OUTPUT_DIR", out):
|
||||
key = load_yesterday_featured_key("2026-07-14")
|
||||
self.assertEqual(key, "headroomlabs-ai/headroom")
|
||||
|
||||
def test_load_recent_falls_back_to_featured_pick(self):
|
||||
with tempfile.TemporaryDirectory() as tmp:
|
||||
out = Path(tmp)
|
||||
payload = {
|
||||
"data": {
|
||||
"date": "2026-07-13",
|
||||
"featured_pick": {
|
||||
"type": "github",
|
||||
"url": "https://github.com/headroomlabs-ai/headroom",
|
||||
},
|
||||
}
|
||||
}
|
||||
(out / "2026-07-13.data.json").write_text(
|
||||
json.dumps(payload, ensure_ascii=False), encoding="utf-8"
|
||||
)
|
||||
with patch("daily.featured_pick.OUTPUT_DIR", out):
|
||||
keys = load_recent_featured_keys("2026-07-14", days=7)
|
||||
self.assertIn("headroomlabs-ai/headroom", keys)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
Reference in New Issue
Block a user