feat: generate 以 board_select 为唯一列表主人并写回 shown keys

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-14 10:36:53 +08:00
parent 0c324f9ace
commit d448002e7a
4 changed files with 1001 additions and 106 deletions

View File

@@ -60,6 +60,33 @@ class ShownKeysTests(unittest.TestCase):
)
self.assertEqual(merged["wecom_shown_keys"]["github_trending"], ["shown/one"])
def test_persist_shown_keys_differs_from_baseline_keys(self):
from daily.board_select import board_select
raw = [{"repo": f"o/r{i}"} for i in range(10)]
recent = {f"o/r{i}" for i in range(3)}
selected = board_select(
board="github_trending",
items=raw,
recent_keys=recent,
limit=5,
pool_size=50,
kind="github",
)
baseline_keys = [x["repo"] for x in raw[:5]]
shown = extract_shown_keys("github_trending", selected)
data = {
"movement_baseline": {
"github_trending": [{"repo": k} for k in baseline_keys],
},
}
merged = merge_wecom_shown_into_data(data, {"github_trending": shown})
self.assertNotEqual(
set(merged["wecom_shown_keys"]["github_trending"]),
{x["repo"] for x in merged["movement_baseline"]["github_trending"]},
)
self.assertEqual(shown, ["o/r3", "o/r4", "o/r5", "o/r6", "o/r7"])
if __name__ == "__main__":
unittest.main()