[V10.337] 兼容 PChome 商品 API list 回應
All checks were successful
CD Pipeline / deploy (push) Successful in 1m6s

This commit is contained in:
OoO
2026-05-20 15:00:22 +08:00
parent 255140224b
commit 3f070a668b
3 changed files with 57 additions and 3 deletions

View File

@@ -92,6 +92,40 @@ def test_pchome_get_retries_transient_timeout():
assert len(calls) == 2
def test_pchome_fetch_product_details_accepts_list_payload():
from services.pchome_crawler import PChomeCrawler
crawler = PChomeCrawler(timeout=1, delay=0, max_retries=0)
calls = []
class FakeSession:
headers = {}
def get(self, url, params=None, timeout=None):
calls.append((url, params, timeout))
return _FakeResponse([
{
"Id": "DDABCD-12345678",
"Name": "測試商品 50ml",
"Price": {"P": 799, "M": 999},
"Pic": {"B": "/items/DDABCD12345678.jpg"},
"Qty": 8,
"Store": "24h",
"isOnSale": True,
}
])
crawler.session = FakeSession()
success, message, products = crawler.fetch_product_details(["DDABCD-12345678"])
assert success is True
assert message == "成功取得 1 個商品資料"
assert len(calls) == 1
assert [product.product_id for product in products] == ["DDABCD-12345678"]
assert products[0].price == 799
def test_feeder_search_cleanup_preserves_bracket_brand_and_specs():
from services.competitor_price_feeder import _clean_search_text