feat: 首推与昨日冲突时改推并保证一月不重复
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
83
tests/test_featured_resolve.py
Normal file
83
tests/test_featured_resolve.py
Normal file
@@ -0,0 +1,83 @@
|
||||
# tests/test_featured_resolve.py
|
||||
from __future__ import annotations
|
||||
|
||||
import random
|
||||
import unittest
|
||||
|
||||
from daily.featured_pick import featured_identity_key, featured_resolve
|
||||
|
||||
|
||||
class FeaturedResolveTests(unittest.TestCase):
|
||||
def test_same_as_yesterday_picks_from_pool_a(self):
|
||||
yesterday_key = "headroomlabs-ai/headroom"
|
||||
pool_a = [
|
||||
{"repo": "headroomlabs-ai/headroom", "board": "github_topic"},
|
||||
{"repo": "ollama/ollama", "board": "github_trending"},
|
||||
]
|
||||
rng = random.Random(0)
|
||||
resolved, key = featured_resolve(
|
||||
date_str="2026-07-14",
|
||||
candidate={
|
||||
"type": "github",
|
||||
"url": "https://github.com/headroomlabs-ai/headroom",
|
||||
"title": "headroom",
|
||||
},
|
||||
pool_a=pool_a,
|
||||
pool_b=[],
|
||||
recent_featured={yesterday_key},
|
||||
yesterday_key=yesterday_key,
|
||||
rng=rng,
|
||||
)
|
||||
self.assertNotEqual(key, yesterday_key)
|
||||
self.assertEqual(key, "ollama/ollama")
|
||||
self.assertIsNotNone(resolved)
|
||||
assert resolved is not None
|
||||
self.assertEqual(resolved.get("repo"), "ollama/ollama")
|
||||
|
||||
def test_pool_a_before_pool_b(self):
|
||||
yesterday_key = "blocked/one"
|
||||
pool_a = [{"repo": "pool-a/repo", "board": "github_trending"}]
|
||||
pool_b = [{"repo": "pool-b/repo", "board": "github_emerging"}]
|
||||
resolved, key = featured_resolve(
|
||||
date_str="2026-07-14",
|
||||
candidate={"type": "github", "repo": "blocked/one", "title": "one"},
|
||||
pool_a=pool_a,
|
||||
pool_b=pool_b,
|
||||
recent_featured={yesterday_key},
|
||||
yesterday_key=yesterday_key,
|
||||
rng=random.Random(1),
|
||||
)
|
||||
self.assertEqual(key, "pool-a/repo")
|
||||
assert resolved is not None
|
||||
self.assertEqual(resolved.get("repo"), "pool-a/repo")
|
||||
|
||||
def test_exhausted_keeps_original(self):
|
||||
yesterday_key = "only/one"
|
||||
candidate = {"type": "github", "repo": "only/one", "title": "one"}
|
||||
resolved, key = featured_resolve(
|
||||
date_str="2026-07-14",
|
||||
candidate=candidate,
|
||||
pool_a=[{"repo": "only/one", "board": "github_trending"}],
|
||||
pool_b=[],
|
||||
recent_featured={yesterday_key},
|
||||
yesterday_key=yesterday_key,
|
||||
rng=random.Random(2),
|
||||
)
|
||||
self.assertEqual(key, yesterday_key)
|
||||
self.assertEqual(resolved, candidate)
|
||||
|
||||
def test_identity_key_skill_and_github(self):
|
||||
self.assertEqual(
|
||||
featured_identity_key({"type": "skill", "id": "a/b/c"}),
|
||||
"a/b/c",
|
||||
)
|
||||
self.assertEqual(
|
||||
featured_identity_key(
|
||||
{"type": "github", "url": "https://github.com/foo/bar"}
|
||||
),
|
||||
"foo/bar",
|
||||
)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user