mirror of
				https://github.com/mealie-recipes/mealie.git
				synced 2025-11-03 02:33:31 -05:00 
			
		
		
		
	* add recipe scaling notes * test theme rename * fix coverage call to use poetry * remove print * remove async * consolidate test case data * fix mealplan tests * remove redundant else Co-authored-by: hay-kot <hay-kot@pm.me>
		
			
				
	
	
		
			108 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			108 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
from dataclasses import dataclass
 | 
						|
 | 
						|
 | 
						|
@dataclass
 | 
						|
class RecipeSiteTestCase:
 | 
						|
    url: str
 | 
						|
    expected_slug: str
 | 
						|
    num_ingredients: int
 | 
						|
    num_steps: int
 | 
						|
 | 
						|
 | 
						|
def get_recipe_test_cases():
 | 
						|
    return [
 | 
						|
        RecipeSiteTestCase(
 | 
						|
            url="https://www.seriouseats.com/taiwanese-three-cup-chicken-san-bei-gi-recipe",
 | 
						|
            expected_slug="taiwanese-three-cup-chicken-san-bei-ji-recipe",
 | 
						|
            num_ingredients=10,
 | 
						|
            num_steps=3,
 | 
						|
        ),
 | 
						|
        RecipeSiteTestCase(
 | 
						|
            url="https://www.rezeptwelt.de/backen-herzhaft-rezepte/schinken-kaese-waffeln-ohne-viel-schnickschnack/4j0bkiig-94d4d-106529-cfcd2-is97x2ml",
 | 
						|
            expected_slug="schinken-kase-waffeln-ohne-viel-schnickschnack",
 | 
						|
            num_ingredients=7,
 | 
						|
            num_steps=1,  # Malformed JSON Data, can't parse steps just get one string
 | 
						|
        ),
 | 
						|
        RecipeSiteTestCase(
 | 
						|
            url="https://cookpad.com/us/recipes/5544853-sous-vide-smoked-beef-ribs",
 | 
						|
            expected_slug="sous-vide-smoked-beef-ribs",
 | 
						|
            num_ingredients=7,
 | 
						|
            num_steps=12,
 | 
						|
        ),
 | 
						|
        RecipeSiteTestCase(
 | 
						|
            url="https://www.greatbritishchefs.com/recipes/jam-roly-poly-recipe",
 | 
						|
            expected_slug="jam-roly-poly-with-custard",
 | 
						|
            num_ingredients=13,
 | 
						|
            num_steps=9,
 | 
						|
        ),
 | 
						|
        RecipeSiteTestCase(
 | 
						|
            url="https://recipes.anovaculinary.com/recipe/sous-vide-shrimp",
 | 
						|
            expected_slug="sous-vide-shrimp",
 | 
						|
            num_ingredients=5,
 | 
						|
            num_steps=0,
 | 
						|
        ),
 | 
						|
        RecipeSiteTestCase(
 | 
						|
            url="https://www.bonappetit.com/recipe/detroit-style-pepperoni-pizza",
 | 
						|
            expected_slug="detroit-style-pepperoni-pizza",
 | 
						|
            num_ingredients=8,
 | 
						|
            num_steps=5,
 | 
						|
        ),
 | 
						|
    ]
 | 
						|
 | 
						|
 | 
						|
def get_raw_recipe():
 | 
						|
    return {
 | 
						|
        "name": "Banana Bread",
 | 
						|
        "description": "From Angie's mom",
 | 
						|
        "image": "banana-bread.jpg",
 | 
						|
        "recipeYield": "",
 | 
						|
        "recipeIngredient": [
 | 
						|
            "4 bananas",
 | 
						|
            "1/2 cup butter",
 | 
						|
            "1/2 cup sugar",
 | 
						|
            "2 eggs",
 | 
						|
            "2 cups flour",
 | 
						|
            "1/2 tsp baking soda",
 | 
						|
            "1 tsp baking powder",
 | 
						|
            "pinch salt",
 | 
						|
            "1/4 cup nuts (we like pecans)",
 | 
						|
        ],
 | 
						|
        "recipeInstructions": [
 | 
						|
            {
 | 
						|
                "@type": "Beat the eggs, then cream with the butter and sugar",
 | 
						|
                "text": "Beat the eggs, then cream with the butter and sugar",
 | 
						|
            },
 | 
						|
            {
 | 
						|
                "@type": "Mix in bananas, then flour, baking soda/powder, salt, and nuts",
 | 
						|
                "text": "Mix in bananas, then flour, baking soda/powder, salt, and nuts",
 | 
						|
            },
 | 
						|
            {
 | 
						|
                "@type": "Add to greased and floured pan",
 | 
						|
                "text": "Add to greased and floured pan",
 | 
						|
            },
 | 
						|
            {
 | 
						|
                "@type": "Bake until brown/cracked, toothpick comes out clean",
 | 
						|
                "text": "Bake until brown/cracked, toothpick comes out clean",
 | 
						|
            },
 | 
						|
        ],
 | 
						|
        "totalTime": "None",
 | 
						|
        "prepTime": None,
 | 
						|
        "tools": ["test_tool"],
 | 
						|
        "performTime": None,
 | 
						|
        "slug": "",
 | 
						|
        "categories": [],
 | 
						|
        "tags": ["breakfast", " baking"],
 | 
						|
        "dateAdded": "2021-01-12",
 | 
						|
        "notes": [],
 | 
						|
        "rating": 0,
 | 
						|
        "orgURL": None,
 | 
						|
        "extras": {},
 | 
						|
    }
 | 
						|
 | 
						|
 | 
						|
def get_raw_no_image():
 | 
						|
    raw = get_raw_recipe()
 | 
						|
    raw["name"] = "Banana Bread No Image"
 | 
						|
    raw["image"] = ""
 | 
						|
    return raw
 |