Files
periscope/tests/test_digikey_match.py
T
micheleandCursor 776d714754 Match BOM MPNs to longer LCSC/DigiKey orderable codes.
The lookup required an exact catalog string, so family codes like ESP32-S31-WROOM-3 never picked ESP32-S31-WROOM-3-N16R16V and underscore vs slash MPNs never hit DigiKey.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-28 01:52:49 +02:00

24 lines
918 B
Python

from backend.services.digikey import _find_product
def test_find_product_accepts_underscore_vs_slash():
products = [{"ManufacturerProductNumber": "25AA1024-I/SM", "DatasheetUrl": "http://a.pdf"}]
picked = _find_product("25AA1024-I_SM", products)
assert picked is not None
assert picked["DatasheetUrl"] == "http://a.pdf"
def test_find_product_accepts_family_orderable():
products = [
{"ManufacturerProductNumber": "24AA025E64-I/SN", "DatasheetUrl": "http://b.pdf"},
]
picked = _find_product("24AA025E64", products)
assert picked is not None
assert picked["DatasheetUrl"] == "http://b.pdf"
def test_find_product_rejects_unrelated():
products = [{"ManufacturerProductNumber": "GRM21BR61A106KE19L", "DatasheetUrl": "http://c.pdf"}]
assert _find_product("10uF", products) is None
assert _find_product("CH340", [{"ManufacturerProductNumber": "CH340E"}]) is None