Example #1
0
    def pick_recipe(self):
        # pick random (weighted) dish type
        dish = self._pick_dish()
        # grab search page for type
        resp = req.get(dish.url)
        per_page = 20
        soup = BeautifulSoup(resp.text)
        # count results
        results = soup.find('p', {'class': 'searchResultsCount results'})
        count = int(results.find('span').text.replace(',', ''))
        # calculate number of pages
        pages = ceil(count / 20)
        rating = 0

        while rating < 4:
            # grab random page
            page = random.randint(1, pages)
            resp = req.get(dish.url, params={'Page': page})
            soup = BeautifulSoup(resp.text)
            results = soup.findAll('div', {'class': 'recipe-info'})
            # grab link to random recipe on page
            recipe_num = random.randint(0, len(results) - 1)
            result = results[recipe_num]
            url = 'http://www.allrecipes.com' + result.p.a.get('href')
            # grab the recipe
            try:
                recipe = Recipe(url=url)
                rating = recipe.rating
            except:
                rating = 0

        return recipe
 def _item_add_finish(self, name):
     for typ in type_icons.keys():
         break
     recipe = Recipe(master, typ, name, mixit)
     self.master.save_configs()
     self.update_listbox()
     self.master.screen_pop()
     self.master.screen_push(RecipeEditScreen(self.master, recipe))
Example #3
0
def test_save_recipe(mock_json_dump):
    """Test saving a recipe works."""
    expected_recipes = read_recipes()
    recipe = Recipe("new recipe", ["banana", "apple"])
    recipe.save()
    expected_recipes.append(recipe)
    mock_json_dump.assert_called_once()
    assert mock_json_dump.call_args[0][0] == [
        r.to_json() for r in expected_recipes
    ]
 def get_recipe(serialized_recipe_dict):
     """Convert a dict returned by the JSON decoder into a Recipe object."""
     recipe = Recipe(serialized_recipe_dict["name"],
                     serialized_recipe_dict["pos"],
                     serialized_recipe_dict["ingredients"],
                     serialized_recipe_dict["other"],
                     serialized_recipe_dict["lower_bounds"],
                     serialized_recipe_dict["upper_bounds"],
                     serialized_recipe_dict["entry_type"],
                     serialized_recipe_dict["variables"])
     return recipe
Example #5
0
    def test_do_not_pick_any_recipe_if_ingredients_requirement_can_not_be_satisfied(
            self):
        days = ['jueves']
        ingredients_list = ['pollo']

        my_meals = [
            Recipe('', 'Puré de calabaza', ['calabaza', 'nata']),
            Recipe('', 'Arroz a la cubana',
                   ['arroz', 'huevo', 'tomate frito']),
        ]
        my_dinners = [
            Recipe('', 'Ensalada de piña', ['lechuga', 'jamón york', 'piña']),
            Recipe('', 'Tortilla de patatas',
                   ['huevos', 'patatas', 'cebolla']),
        ]
        result = create_menu(week_days=days,
                             my_meals=my_meals,
                             my_dinners=my_dinners,
                             ingredients=ingredients_list)

        self.assertEqual(len(result), 0)
Example #6
0
 def setUp(self) -> None:
     self.my_meals = [
         Recipe('', 'Raviolis con salsa de berenjena',
                ['berenjenas', 'raviolis', 'parmesano']),
         Recipe('', 'Puré de calabaza', ['calabaza', 'nata']),
         Recipe('', 'Arroz a la cubana',
                ['arroz', 'huevo', 'tomate frito']),
         Recipe('', 'Paella', ['arroz', 'conejo', 'pimientos']),
     ]
     self.my_dinners = [
         Recipe('', 'Ensalada de piña', ['lechuga', 'jamón york', 'piña']),
         Recipe('', 'Sopa de fideos',
                ['caldo de pollo', 'fideos', '4 huevos']),
         Recipe('', 'Tortilla de patatas',
                ['huevos', 'patatas', 'cebolla']),
     ]
Example #7
0
screenManager.add_widget(Trends(name="trends"))

screenManager.add_widget(ShoppingList(name="shoppinglist"))

screenManager.add_widget(ItemShare(name="shareitems"))

screenManager.add_widget(ManagePL(name="managepl"))

screenManager.add_widget(EditCreateProfile(name="editcreateprofile"))

screenManager.add_widget(SetupEditNotification(name="setupeditnotification"))

screenManager.add_widget(UpdatePersonalRecipe(name="updatepersonalrecipe"))

screenManager.add_widget(Recipe(name="recipes"))

screenManager.add_widget(AddRecipe(name="addrecipe"))

screenManager.add_widget(GetRecipe(name="getreccrecipes"))

screenManager.add_widget(ViewRecipe(name="viewrecipe"))

screenManager.add_widget(PersonalRecipe(name='personalrecipe'))

screenManager.add_widget(ViewPersonalRecipe(name='viewpersonalrecipe'))

screenManager.add_widget(AddItem(name="additem"))

screenManager.add_widget(DeleteItem(name="deleteitem"))
Example #8
0
def hot_water(water):
    return Recipe(cook_time=1, r_id=3, ingredients=((water, 50), ))
Example #9
0
def hot_milk(milk):
    return Recipe(cook_time=1, r_id=2, ingredients=((milk, 50), ))
Example #10
0
def ginger_tea(water, milk, tea_leaves_syrup, ginger_syrup, sugar_syrup):
    return Recipe(cook_time=1,
                  r_id=1,
                  ingredients=((water, 50), (milk, 10), (tea_leaves_syrup, 10),
                               (ginger_syrup, 5), (sugar_syrup, 10)))
Example #11
0
"""Handles the view function of my MVC design pattern"""

from flask import render_template, request, redirect, session, url_for
from app import app
from users import User, all_users
from recipes import Recipe, all_recipes

user = User()
recipe = Recipe()

@app.route('/')
@app.route('/index')
def index():
    """render the home page"""
    return render_template('index.html')


@app.route('/about')
def about():
    """render the about page"""
    return render_template('about.html')


@app.route('/signup', methods=['GET', 'POST'])
def signup():
    """render the registration form and handles user input for registration"""
    if request.method == 'POST':
        email = request.form['email']
        username = request.form['username']
        password = request.form['password']
        confirm_password = request.form['confirmPassword']
Example #12
0
def test_create_recipe():
    """Test creating a recipe works as expected."""
    recipe = Recipe("Tuna pasta", ingreds)
    assert recipe.name == "Tuna pasta"
    assert recipe.ingreds == ingreds
Example #13
0
def test_recipe_from_json():
    """Test creating a recipe from JSON format."""
    orig_recipe = Recipe("Tuna pasta", ingreds)
    new_recipe = Recipe.from_json(orig_recipe.to_json())
    assert new_recipe.name == orig_recipe.name
    assert new_recipe.ingreds == orig_recipe.ingreds
Example #14
0
def test_recipe_to_json():
    """Test converting a recipe to JSON format."""
    recipe = Recipe("Tuna pasta", ingreds)
    data = recipe.to_json()
    assert data["name"] == recipe.name
    assert data["ingredients"] == recipe.ingreds
Example #15
0
def test_print_recipe():
    """Test the string representation of a recipe."""
    recipe = Recipe("Tuna pasta", ingreds)
    assert str(
        recipe) == 'Recipe "Tuna pasta"\n - tuna\n - sweetcorn\n - pasta'
Example #16
0
 def setUp(self):
     """set up important variables that will be available within all methods"""
     self.recipe = Recipe()
     self.existing_recipe = self.recipe.create('Grilled Chicken', 'chicken',
                                               'grill the chicken')