def test_add_saved_recipe(self): db.session.add(models.Levels(difficulty=self.DIFFICULTY)) db.session.add(models.Users(**self.TEST_ADD_USER)) db.session.add(models.Recipe(**self.TEST_ADD_RECIPE)) db_queries.add_saved_recipe(self.TEST_RECIPE_ID, self.TEST_ID) db_user = db.session.query(models.Users).get(self.TEST_ID) assert self.TEST_RECIPE_ID in db_user.saved_recipes
def test_add_user_submitted_image(self): db.session.add(models.Levels(difficulty=self.DIFFICULTY)) db.session.add(models.Users(**self.TEST_ADD_USER)) db.session.add(models.Recipe(**self.TEST_ADD_RECIPE)) db_queries.add_user_submitted_image(self.TEST_RECIPE_ID, ["image"]) recipe = db.session.query(models.Recipe).get(self.TEST_RECIPE_ID) self.assertEqual(recipe.user_submitted_images, ["image"])
def test_add_favorite_recipe(self): db.session.add(models.Levels(difficulty=self.DIFFICULTY)) db.session.add(models.Users(**self.TEST_ADD_USER)) db.session.add(models.Recipe(**self.TEST_ADD_RECIPE)) db_queries.add_favorite_recipe(12345, self.TEST_ID) db_user = db.session.query(models.Users).get(self.TEST_ID) assert 12345 in db_user.favorite_recipes
def test_add_rating(self): db.session.add(models.Levels(difficulty=self.DIFFICULTY)) db.session.add(models.Users(**self.TEST_ADD_USER)) db.session.add(models.Recipe(**self.TEST_ADD_RECIPE)) db_queries.add_rating(self.TEST_ID, self.TEST_RECIPE_ID, 3.5) db_queries.add_rating(self.TEST_ID, self.TEST_RECIPE_ID, 5) recipe = db.session.query(models.Recipe).get(self.TEST_RECIPE_ID) self.assertEqual(recipe.ratings[0].rate, 5)
def test_search_by_tag(self): recipe = models.Recipe(**self.TEST_ADD_RECIPE) tag = models.Tag(**self.TEST_ADD_TAG) recipe.tags.append(tag) db.session.add(models.Levels(difficulty=self.DIFFICULTY)) db.session.add(models.Users(**self.TEST_ADD_USER)) db.session.add(recipe) searched_recipes = db_queries.search_by_tag(self.TEST_ADD_TAG["name"]) self.assertEqual(searched_recipes[0]["title"], self.TEST_ADD_RECIPE["title"])
def test_add_recipe(self): with mock.patch( "db_queries.generate_random_user_id", mocked_generate_recipe_id ): db.session.add(models.Levels(difficulty=self.DIFFICULTY)) db.session.add(models.Users(**self.TEST_ADD_USER)) db.session.add(models.Recipe(**self.TEST_ADD_RECIPE_2)) recipe_id = db_queries.add_recipe(self.TEST_RECIPE) self.assertEqual( self.TEST_RECIPE["user"], db.session.query(models.Recipe).get(recipe_id).user_id, ) self.assertEqual( self.TEST_RECIPE["title"], db.session.query(models.Recipe).get(recipe_id).title, ) self.assertEqual( self.TEST_RECIPE["description"], db.session.query(models.Recipe).get(recipe_id).description, ) self.assertEqual( self.TEST_RECIPE["images"], db.session.query(models.Recipe).get(recipe_id).images, ) self.assertEqual( self.TEST_RECIPE["videos"], db.session.query(models.Recipe).get(recipe_id).videos, ) self.assertEqual( self.TEST_RECIPE["difficulty"], db.session.query(models.Recipe).get(recipe_id).difficulty, ) self.assertEqual( self.TEST_RECIPE["ingredients"], db.session.query(models.Recipe).get(recipe_id).ingredients, ) self.assertEqual( self.TEST_RECIPE["instructions"], db.session.query(models.Recipe).get(recipe_id).instructions, ) self.assertEqual( self.TEST_RECIPE["readyInMinutes"], db.session.query(models.Recipe).get(recipe_id).ready_in_minutes, ) self.assertEqual( self.TEST_RECIPE["servings"], db.session.query(models.Recipe).get(recipe_id).servings, ) forked_recipe = db.session.query(models.Recipe).get(self.TEST_RECIPE_ID_2) self.assertEqual(forked_recipe.number_of_forks, 1) self.assertEqual( db.session.query(models.Recipe).get(recipe_id).forked_from_recipe, self.TEST_RECIPE_ID_2, )
def test_get_rating(self): db.session.add(models.Levels(difficulty=self.DIFFICULTY)) db.session.add(models.Users(**self.TEST_ADD_USER)) db.session.add(models.Users(**self.TEST_ADD_USER_2)) db.session.add(models.Recipe(**self.TEST_ADD_RECIPE)) db.session.add(models.Rating(**self.RATING_1)) db.session.add(models.Rating(**self.RATING_2)) recipe = db.session.query(models.Recipe).get(self.TEST_RECIPE_ID) recipe_rating = db_queries.get_rating(recipe.id) self.assertEqual(recipe_rating, 2.0)
def test_add_recipe(self): with mock.patch( "db_queries.generate_random_user_id", mocked_generate_recipe_id ): db.session.add(models.Levels(difficulty=self.DIFFICULTY)) db.session.add( models.Users( id=self.TEST_ID, email=self.TEST_USER["email"], name=self.TEST_USER["name"], shopping_list=[], shared_recipes=[], saved_recipes=[], profile_pic=self.TEST_USER["imageURL"], ) ) recipe_id = db_queries.add_recipe(self.TEST_RECIPE) self.assertEqual( self.TEST_RECIPE["user"], db.session.query(models.Recipe).get(recipe_id).user_id, ) self.assertEqual( self.TEST_RECIPE["title"], db.session.query(models.Recipe).get(recipe_id).title, ) self.assertEqual( self.TEST_RECIPE["description"], db.session.query(models.Recipe).get(recipe_id).description, ) self.assertEqual( self.TEST_RECIPE["images"], db.session.query(models.Recipe).get(recipe_id).images, ) self.assertEqual( self.TEST_RECIPE["difficulty"], db.session.query(models.Recipe).get(recipe_id).difficulty, ) self.assertEqual( self.TEST_RECIPE["ingredients"], db.session.query(models.Recipe).get(recipe_id).ingredients, ) self.assertEqual( self.TEST_RECIPE["instructions"], db.session.query(models.Recipe).get(recipe_id).instructions, ) self.assertEqual( self.TEST_RECIPE["readyInMinutes"], db.session.query(models.Recipe).get(recipe_id).ready_in_minutes, ) self.assertEqual( self.TEST_RECIPE["servings"], db.session.query(models.Recipe).get(recipe_id).servings, )
def test_edit_recipe(self): db.session.add(models.Levels(difficulty=self.DIFFICULTY)) db.session.add(models.Users(**self.TEST_ADD_USER)) db.session.add(models.Recipe(**self.TEST_ADD_RECIPE)) db_queries.edit_recipe(self.TEST_RECIPE_ID, {"title": "Edited Title"}) recipe = db.session.query(models.Recipe).get(self.TEST_RECIPE_ID) self.assertEqual(recipe.title, "Edited Title") db_queries.edit_recipe(self.TEST_RECIPE_ID, {"videos": ["new test video"]}) recipe = db.session.query(models.Recipe).get(self.TEST_RECIPE_ID) self.assertEqual(recipe.videos, ["new test video"]) db_queries.edit_recipe( self.TEST_RECIPE_ID, {"ingredients": {"name": "Edited Ingredients"}} ) recipe = db.session.query(models.Recipe).get(self.TEST_RECIPE_ID) self.assertDictEqual(recipe.ingredients, {"name": "Edited Ingredients"}) db_queries.edit_recipe(self.TEST_RECIPE_ID, {"images": ["new test image"]}) recipe = db.session.query(models.Recipe).get(self.TEST_RECIPE_ID) self.assertEqual(recipe.images, ["new test image"]) db_queries.edit_recipe(self.TEST_RECIPE_ID, {"servings": 1}) recipe = db.session.query(models.Recipe).get(self.TEST_RECIPE_ID) self.assertEqual(recipe.servings, 1) db_queries.edit_recipe(self.TEST_RECIPE_ID, {"readyInMinutes": 10}) recipe = db.session.query(models.Recipe).get(self.TEST_RECIPE_ID) self.assertEqual(recipe.ready_in_minutes, 10) db_queries.edit_recipe( self.TEST_RECIPE_ID, {"instructions": {"step": "Edited Instructions"}} ) recipe = db.session.query(models.Recipe).get(self.TEST_RECIPE_ID) self.assertDictEqual(recipe.instructions, {"step": "Edited Instructions"}) db_queries.edit_recipe(self.TEST_RECIPE_ID, {"difficulty": "advanced"}) recipe = db.session.query(models.Recipe).get(self.TEST_RECIPE_ID) self.assertEqual(recipe.difficulty, "advanced") db_queries.edit_recipe(self.TEST_RECIPE_ID, {"description": "New Description"}) recipe = db.session.query(models.Recipe).get(self.TEST_RECIPE_ID) self.assertEqual(recipe.description, "New Description") db_queries.edit_recipe(self.TEST_RECIPE_ID, {"tags": ["new tag", "dinner"]}) recipe = db.session.query(models.Recipe).get(self.TEST_RECIPE_ID) assert ( db.session.query(models.Tag).filter_by(name="new tag").first() in recipe.tags ) assert ( db.session.query(models.Tag).filter_by(name="dinner").first() in recipe.tags )
def test_get_n_recipes(self): db.session.add(models.Levels(difficulty=self.DIFFICULTY)) db.session.add(models.Users(**self.TEST_ADD_USER)) db.session.add(models.Recipe(**self.TEST_ADD_RECIPE)) searched_recipes = db_queries.get_n_recipes(1) self.assertEqual(searched_recipes[0]["title"], self.TEST_ADD_RECIPE["title"])
def test_get_recipe(self): db.session.add(models.Levels(difficulty=self.DIFFICULTY)) db.session.add(models.Users(**self.TEST_ADD_USER)) db.session.add(models.Recipe(**self.TEST_ADD_RECIPE)) got_recipe = db_queries.get_recipe(self.TEST_RECIPE_ID) self.assertEqual(self.TEST_ADD_RECIPE["title"], got_recipe["title"])