from decimal import Decimal from uuid import uuid4 from app.schemas.ingredient import IngredientCreate, IngredientRead, IngredientGroceryMatchRead def test_ingredient_create_normalizes_aliases() -> None: payload = IngredientCreate( name="Chicken Thighs", aliases=[" chicken thigh ", "BSL chicken thighs", ""], aisle="meat_seafood", unit="lb", ) assert payload.name == "Chicken Thighs" assert payload.aliases == ["chicken thigh", "BSL chicken thighs"] def test_ingredient_match_read_round_trip() -> None: iid = uuid4() gid = uuid4() raw = { "id": uuid4(), "ingredient_id": iid, "grocery_item_id": gid, "confidence": Decimal("0.875"), "source": "auto", "grocery_item_name": "Foster Farms Chicken Thighs Family Pack", "current_price": Decimal("3.99"), "regular_price": Decimal("5.49"), "is_on_sale": True, } parsed = IngredientGroceryMatchRead.model_validate(raw) assert parsed.confidence == Decimal("0.875") assert parsed.is_on_sale is True