feat: generate 以 board_select 为唯一列表主人并写回 shown keys
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user