Beispiel #1
0
 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)
Beispiel #5
0
 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)
Beispiel #8
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
        )
Beispiel #10
0
 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"])
Beispiel #11
0
 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"])