Files
Meal-Planner/backend/tests/test_ingredient_schema.py

35 lines
1.1 KiB
Python

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