diff --git a/src/recipe_graph/scrape.py b/src/recipe_graph/scrape.py index a3d3dde..7582f59 100644 --- a/src/recipe_graph/scrape.py +++ b/src/recipe_graph/scrape.py @@ -121,7 +121,7 @@ def parse_recipe_name( return recipe -def parse_ingredient( +def ingredient_to_parts( ingredient: db.Ingredient ) -> db.RecipeIngredientParts: parts = parse_ingredient(ingredient.text) @@ -153,7 +153,7 @@ def parse_recipe(session, recipe, site): session.add(ingredient) session.flush() - parts = parse_ingredient(ingredient) + parts = ingredient_to_parts(ingredient) if parts: session.add(parts) diff --git a/test/test_scrape.py b/test/test_scrape.py index 565b451..f2cb87c 100644 --- a/test/test_scrape.py +++ b/test/test_scrape.py @@ -14,7 +14,6 @@ def mock_site(): base_url="example-site/mock-site", ) - # TODO: should probably load HTML from file @fixture def mock_page(): @@ -39,6 +38,10 @@ def mock_recipe(): return Recipe(name="test_recipe", identifier="mock_1") +@fixture +def mock_ingredient(): + return RecipeIngredient(text="1 ounce water") + @fixture def mock_url(): return "example-site/mock-site" @@ -76,5 +79,12 @@ def test_parse_recipe_name(mock_site, mock_page, mock_recipe, mock_url): mock_url, ) assert mock_recipe.name == expected_name - # assert False + +def test_ingredient_to_parts(mock_ingredient): + parts = scrape.ingredient_to_parts(mock_ingredient) + assert parts.quantity == "1" + assert parts.unit == "ounce" + assert parts.instruction == "" + assert parts.ingredient == "water" + assert parts.supplement == None