停用過期活動爬蟲排程
All checks were successful
CD Pipeline / deploy (push) Successful in 1m16s

This commit is contained in:
OoO
2026-05-21 16:02:45 +08:00
committed by AiderHeal Bot
parent 3ec5fa9cb5
commit 5e2bdd5b77
8 changed files with 155 additions and 25 deletions

View File

@@ -266,6 +266,25 @@ def test_marketplace_matcher_promotes_nivea_deodorant_spray_identity():
assert diagnostics.hard_veto is False
def test_marketplace_matcher_promotes_nivea_deodorant_lotion_noise_variants():
from services.marketplace_product_matcher import build_search_terms, score_marketplace_match
momo_name = "【NIVEA 妮維雅】德國妮維雅 止汗爽身乳液50ml(無印止汗滾珠)"
diagnostics = score_marketplace_match(
momo_name,
"NIVEA 妮維雅 止汗爽身乳液 50ml",
momo_price=149,
competitor_price=169,
)
terms = build_search_terms(momo_name, max_terms=5)
assert diagnostics.score >= 0.76
assert diagnostics.hard_veto is False
assert terms[0] == "妮維雅 止汗爽身乳液 50ml"
assert "德國妮維雅" not in " ".join(terms[:3])
assert "無印止汗滾珠" not in " ".join(terms[:3])
def test_marketplace_matcher_promotes_packaging_variant_for_same_nars_powder():
from services.marketplace_product_matcher import score_marketplace_match
@@ -1099,7 +1118,7 @@ def test_marketplace_search_terms_prioritize_precise_primer_identity_phrase():
assert "校色" not in " ".join(shu_terms[:3])
assert any("水凝光透 妝前防護乳" in term for term in meme_terms[:4])
assert "好氣色" not in " ".join(meme_terms[:3])
assert eaoron_terms[0] == "eaoron 素顏霜 50ml"
assert eaoron_terms[0] == "eaoron 經典素顏霜 50ml"
assert "懶人霜" not in " ".join(eaoron_terms[:3])
@@ -1119,7 +1138,7 @@ def test_marketplace_search_terms_prefer_exact_identity_for_nail_foam_and_foot_m
max_terms=5,
)
assert opi_terms[0] == "ist31 閃耀保色護甲油 15ml"
assert opi_terms[0] == "opi 閃耀保色護甲油 15ml"
assert "小銀蓋" not in " ".join(opi_terms[:3])
assert arau_terms[0] == "愛樂寶 溫和洗手慕斯 300ml"
assert "溫和不乾澀" not in " ".join(arau_terms[:3])
@@ -1182,14 +1201,39 @@ def test_marketplace_search_terms_prioritize_exact_identity_for_low_score_fronti
"【PERIPERA】雙頭旋轉極細眉筆 0.05g(09灰褐棕)",
max_terms=5,
)
za_classic_terms = build_search_terms(
"【Za】官方直營 經典旋轉眉筆(色號任選)",
max_terms=5,
)
kate_refill_terms = build_search_terms(
"【KATE 凱婷】3D造型眉彩餅補充芯(眉彩刷、眉餅盒分開販售)",
max_terms=5,
)
peripera_liner_terms = build_search_terms(
"【peripera官方直營】速描眼線膠筆_多色任選(極細筆芯 防水抗暈)",
max_terms=5,
)
recipe_box_sunscreen_terms = build_search_terms(
"【Recipe Box】Recipe Box多效提亮防曬霜(兒童化妝品/無毒防曬霜/天然彩妝/防曬/提亮)",
max_terms=5,
)
opi_terms = build_search_terms(
"【O.P.I】紅蘋果 類光繚指甲油-ISLN25(小銀蓋/如膠似漆2.0系列指彩/美甲彩繪/官方直營)",
max_terms=5,
)
assert ludeya_terms[0] == "ludeya 蜂王玫瑰瑰泌霜 60ml"
assert "兩入組" not in " ".join(ludeya_terms[:3])
assert estee_terms[0] == "雅詩蘭黛 微分子肌底原生露 200ml"
assert "櫻花輕盈版" not in " ".join(estee_terms[:3])
assert za_palette_terms[0] == "za 立體持色眉彩盤 3.4g"
assert za_palette_terms[0] == "za 3d立體持色眉彩盤 3.4g"
assert za_pencil_terms[0] == "za 細芯睛彩雙頭眉筆 0.1g"
assert peripera_terms[0] == "peripera 雙頭旋轉極細眉筆 09 0.05g"
assert za_classic_terms[0] == "za 經典旋轉眉筆"
assert kate_refill_terms[0] == "凱婷 3d造型眉彩餅補充芯"
assert peripera_liner_terms[0] == "peripera 速描眼線膠筆"
assert recipe_box_sunscreen_terms[0] == "recipe box 多效提亮防曬霜"
assert opi_terms[0] == "opi 類光繚指甲油 isln25"
def test_batch_compare_top_uses_latest_momo_price_not_revenue(monkeypatch):

View File

@@ -163,6 +163,26 @@ def test_roi_ai_smoke_and_daily_report_schedules_stay_staggered():
assert "schedule.every(6).hours.do(run_action_plan_hygiene_task)" in source
def test_legacy_edm_and_seasonal_promo_schedules_are_opt_in(monkeypatch):
run_scheduler = _load_run_scheduler(monkeypatch)
source = inspect.getsource(run_scheduler._register_schedules)
monkeypatch.delenv("MOMO_ENABLE_LEGACY_EDM_SCHEDULE", raising=False)
monkeypatch.delenv("MOMO_ENABLE_SEASONAL_PROMO_SCHEDULE", raising=False)
assert run_scheduler._legacy_edm_schedule_enabled() is False
assert run_scheduler._seasonal_promo_schedule_enabled() is False
monkeypatch.setenv("MOMO_ENABLE_LEGACY_EDM_SCHEDULE", "true")
monkeypatch.setenv("MOMO_ENABLE_SEASONAL_PROMO_SCHEDULE", "1")
assert run_scheduler._legacy_edm_schedule_enabled() is True
assert run_scheduler._seasonal_promo_schedule_enabled() is True
assert "if _legacy_edm_schedule_enabled():" in source
assert "if not _seasonal_promo_schedule_enabled():" in source
assert "MOMO_ENABLE_LEGACY_EDM_SCHEDULE" in Path("run_scheduler.py").read_text()
assert "MOMO_ENABLE_SEASONAL_PROMO_SCHEDULE" in Path("run_scheduler.py").read_text()
def test_ai_smoke_daily_summary_refreshes_smoke_before_push(monkeypatch):
run_scheduler = _load_run_scheduler(monkeypatch)
source = inspect.getsource(run_scheduler.run_ai_smoke_daily_summary_task)