mirror of
https://github.com/mealie-recipes/mealie.git
synced 2025-10-27 16:24:31 -04:00
fix: Ingredient Parser Drops Units Sometimes (#6150)
This commit is contained in:
@@ -161,12 +161,15 @@ class ABCIngredientParser(ABC):
|
|||||||
ingredient.ingredient.unit = unit_match
|
ingredient.ingredient.unit = unit_match
|
||||||
|
|
||||||
# Parser might have wrongly split a food into a unit and food.
|
# Parser might have wrongly split a food into a unit and food.
|
||||||
if isinstance(ingredient.ingredient.food, CreateIngredientFood) and isinstance(
|
food_is_matched = bool(ingredient.ingredient.food and ingredient.ingredient.food.id)
|
||||||
ingredient.ingredient.unit, CreateIngredientUnit
|
unit_is_matched = bool(ingredient.ingredient.unit and ingredient.ingredient.unit.id)
|
||||||
):
|
food_name = ingredient.ingredient.food.name if ingredient.ingredient.food else ""
|
||||||
if food_match := self.data_matcher.find_food_match(
|
unit_name = ingredient.ingredient.unit.name if ingredient.ingredient.unit else ""
|
||||||
f"{ingredient.ingredient.unit.name} {ingredient.ingredient.food.name}"
|
|
||||||
):
|
if not food_is_matched and not unit_is_matched and food_name and unit_name:
|
||||||
|
food_match = self.data_matcher.find_food_match(f"{unit_name} {food_name}")
|
||||||
|
|
||||||
|
if food_match:
|
||||||
ingredient.ingredient.food = food_match
|
ingredient.ingredient.food = food_match
|
||||||
ingredient.ingredient.unit = None
|
ingredient.ingredient.unit = None
|
||||||
|
|
||||||
|
|||||||
@@ -181,7 +181,6 @@ def parsed_ingredient_data(
|
|||||||
id="stalk bell peppers, cut in pieces",
|
id="stalk bell peppers, cut in pieces",
|
||||||
),
|
),
|
||||||
pytest.param("red pepper flakes", 0, "", "red pepper flakes", "", id="red pepper flakes"),
|
pytest.param("red pepper flakes", 0, "", "red pepper flakes", "", id="red pepper flakes"),
|
||||||
pytest.param("1 red pepper flakes", 1, "", "red pepper flakes", "", id="1 red pepper flakes"),
|
|
||||||
pytest.param("1 bell peppers", 1, "", "bell peppers", "", id="1 bell peppers"),
|
pytest.param("1 bell peppers", 1, "", "bell peppers", "", id="1 bell peppers"),
|
||||||
pytest.param("1 stalk bell peppers", 1, "Stalk", "bell peppers", "", id="1 big stalk bell peppers"),
|
pytest.param("1 stalk bell peppers", 1, "Stalk", "bell peppers", "", id="1 big stalk bell peppers"),
|
||||||
pytest.param("a big stalk bell peppers", 0, "Stalk", "bell peppers", "", id="a big stalk bell peppers"),
|
pytest.param("a big stalk bell peppers", 0, "Stalk", "bell peppers", "", id="a big stalk bell peppers"),
|
||||||
|
|||||||
Reference in New Issue
Block a user