def test_rate_recipe_bad_recipe_id(self):
        with server.app_context():
            user_data_1 = {
                'email': '*****@*****.**',
                'first_name': 'Ethan',
                'last_name': 'Hunt',
                'password': '******'
            }

            reg_user_1 = register_user(user_data_1)

            login({
                'email': user_data_1['email'],
                'password': user_data_1['password']
            })

            recipe_info = {
                'name': 'Pork',
                'preparation': 'Everybodys favorite dish',
                'ingredients': ['Pork', 'Oil', 'Seasoning', 'Beer'],
                'user_id': reg_user_1.id
            }

            add_recipe(recipe_info)

            self.assertRaises(BadRequest, rate_recipe, {
                'rating': 5,
                'user_id': reg_user_1.id
            }, 'this aint recipe id')
    def test_get_valid_user_recipes(self):
        with server.app_context():
            user_data_1 = {
                'email': '*****@*****.**',
                'first_name': 'Ethan',
                'last_name': 'Hunt',
                'password': '******'
            }

            reg_user_1 = register_user(user_data_1)

            login({
                'email': user_data_1['email'],
                'password': user_data_1['password']
            })

            recipe_info = {
                'name': 'Pork',
                'preparation': 'Everybodys favorite dish',
                'ingredients': ['Pork', 'Oil', 'Seasoning', 'Beer'],
                'user_id': reg_user_1.id
            }

            add_recipe(recipe_info)
            add_recipe(recipe_info)

            resp = get_user_recipes(reg_user_1.id)

            self.assertEqual(2, len(resp))
    def test_valid_add_recipe(self):
        with server.app_context():
            user_data = {
                'email': '*****@*****.**',
                'first_name': 'test',
                'last_name': 'Jones',
                'password': '******'
            }

            reg_user = register_user(user_data)

            resp = login({
                'email': user_data['email'],
                'password': user_data['password']
            })

            recipe_info = {
                'name': 'Pork',
                'preparation': 'Everybodys favorite dish',
                'ingredients': ['Pork', 'Oil', 'Seasoning', 'Beer'],
                'user_id': reg_user.id
            }

            resp = add_recipe(recipe_info)

            self.assertEqual(resp.name, recipe_info['name'])
            self.assertEqual(resp.preparation, recipe_info['preparation'])
            self.assertEqual([ing.name for ing in resp.ingredients],
                             recipe_info['ingredients'])
            self.assertEqual(resp.rating, 0)
            self.assertEqual(resp.num_of_ratings, 0)
            self.assertEqual(resp.num_of_ingredients,
                             len(recipe_info['ingredients']))
    def test_valid_rate_recipe(self):
        with server.app_context():
            user_data_1 = {
                'email': '*****@*****.**',
                'first_name': 'Ethan',
                'last_name': 'Hunt',
                'password': '******'
            }

            user_data_2 = {
                'email': '*****@*****.**',
                'first_name': 'Natasha',
                'last_name': 'Romanov',
                'password': '******'
            }

            reg_user_1 = register_user(user_data_1)
            reg_user_2 = register_user(user_data_2)

            login({
                'email': user_data_1['email'],
                'password': user_data_1['password']
            })

            login({
                'email': user_data_2['email'],
                'password': user_data_2['password']
            })

            recipe_info = {
                'name': 'Pork',
                'preparation': 'Everybodys favorite dish',
                'ingredients': ['Pork', 'Oil', 'Seasoning', 'Beer'],
                'user_id': reg_user_1.id
            }

            recipe = add_recipe(recipe_info)

            self.assertEqual(0, recipe.rating)
            self.assertEqual(0, recipe.num_of_ratings)

            res = rate_recipe({
                'rating': 5,
                'user_id': reg_user_2.id
            }, recipe.id)

            self.assertEqual(recipe.name, res.name)
            self.assertEqual(5, res.rating)
            self.assertEqual(1, res.num_of_ratings)
Exemple #5
0
def add_new_recipe():
    if request.is_json:
        data = request.get_json()
        result = add_recipe(data)

        return {'message': f'{result.name} created succesfully'}