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>
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
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
|
||||
Reference in New Issue
Block a user