from rf4_research.community_sources import EquipmentItem from rf4_research.gear_components import from_catch_fields, from_equipment def test_from_equipment_preserves_source_order_and_external_ids() -> None: rows = from_equipment(( EquipmentItem("Катушка", "Test Reel", "reel-1"), EquipmentItem("Приманка поклёвки", "Test Lure", "lure-1"), )) assert [(row.role, row.position, row.raw_value, row.source_external_id) for row in rows] == [ ("reel", 0, "Test Reel", "reel-1"), ("lure", 1, "Test Lure", "lure-1"), ] def test_from_catch_fields_keeps_unresolved_raw_values() -> None: rows = from_catch_fields(bait="Spiker #2", rig_type="Method Popup") assert [(row.role, row.raw_value, row.source_external_id) for row in rows] == [ ("lure", "Spiker #2", None), ("rig", "Method Popup", None), ]