fix(web): offer representative time after occupation notes cover

Dateless occupation_note stayed draft, so classic coverage never finished
and offer-candidates stayed blocked. Confirm those notes, stop crowding
dasha probes with encoded exam quality, and adopt once blocking methods
are covered.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Jesse_Chen
2026-08-23 17:21:49 +08:00
parent 6b225a288c
commit 75dbab08b9
11 changed files with 774 additions and 28 deletions
+54 -7
View File
@@ -109,13 +109,13 @@ class EventProbesTest(unittest.TestCase):
today=date(2026, 8, 22),
)
self.assertTrue(probes)
self.assertEqual(probes[0]["source"], "known_event_quality")
self.assertEqual(probes[0]["role"], "distinguish")
self.assertEqual(probes[0]["year"], 2015)
self.assertIn("年份锁定", probes[0]["user_meaning"])
self.assertIn("请写成", probes[0]["user_meaning"])
self.assertIn("发挥失常", probes[0]["user_meaning"])
self.assertNotIn("更像哪一件", probes[0]["user_meaning"])
quality = next(item for item in probes if item["source"] == "known_event_quality")
self.assertEqual(quality["role"], "distinguish")
self.assertEqual(quality["year"], 2015)
self.assertIn("年份锁定", quality["user_meaning"])
self.assertIn("请写成", quality["user_meaning"])
self.assertIn("发挥失常", quality["user_meaning"])
self.assertNotIn("更像哪一件", quality["user_meaning"])
self.assertNotIn("05:14", str(probes))
self.assertNotIn("points", str(probes))
@@ -213,6 +213,53 @@ class EventProbesTest(unittest.TestCase):
self.assertTrue(probes)
self.assertTrue(all(item["source"] == "age_band" for item in probes))
def test_encoded_exam_quality_does_not_fill_probe_slots(self) -> None:
built = {
"static_contexts": [
_context("05:13", d4_asc=0, sun_house=4, sun_varga_sign=3),
_context("05:14", d4_asc=1, sun_house=10, sun_varga_sign=9),
]
}
probes = discriminating_event_probes(
_request(events=[
{
"id": "00000000-0000-4000-8000-000000000001",
"domain": "education",
"summary": "2015 年第一次参加高考,发挥失利",
"date": "2015-06-01",
"precision": "year",
},
{
"id": "00000000-0000-4000-8000-000000000002",
"domain": "education",
"summary": "2016 年复读一年后再次参加高考",
"date": "2016-06-01",
"precision": "year",
},
{
"id": "00000000-0000-4000-8000-000000000003",
"domain": "education",
"summary": "2016 年 9 月进入大学",
"date": "2016-09-01",
"precision": "month",
},
]),
built,
scan=window_scan(built),
candidate_times=["05:13", "05:14"],
representative_time="05:13",
precision_current="d5_refine",
today=date(2026, 8, 22),
)
self.assertTrue(probes)
self.assertFalse(any(
item["source"] == "known_event_quality" and item["year"] in {2015, 2016}
for item in probes
))
self.assertTrue(any(item["source"] in {"dasha_activation", "dasha_boundary"} for item in probes))
self.assertTrue(any(item["domain"] == "relocation" for item in probes))
self.assertLessEqual(len(probes), 3)
if __name__ == "__main__":
unittest.main()