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))
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
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)
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']), ]
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"))
def hot_water(water): return Recipe(cook_time=1, r_id=3, ingredients=((water, 50), ))
def hot_milk(milk): return Recipe(cook_time=1, r_id=2, ingredients=((milk, 50), ))
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)))
"""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']
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
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
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
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'
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')