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_rate_recipe_out_of_range(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
            }

            recipe = add_recipe(recipe_info)

            self.assertRaises(BadRequest, rate_recipe, {
                'rating': -1,
                'user_id': reg_user_1.id
            }, recipe.id)
            self.assertRaises(BadRequest, rate_recipe, {
                'rating': 9000,
                'user_id': reg_user_1.id
            }, recipe.id)
    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)
    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_get_invalid_user_recipes(self):
        with server.app_context():
            user_data_1 = {
                'email': '*****@*****.**',
                'first_name': 'Ethan',
                'last_name': 'Hunt',
                'password': '******'
            }

            register_user(user_data_1)

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

            self.assertRaises(BadRequest, get_user_recipes,
                              'this aint valid id')
    def test_invalid_add_recipe(self):
        with server.app_context():
            user_data = {
                'email': '*****@*****.**',
                'first_name': 'test',
                'last_name': 'Jones',
                'password': '******'
            }

            register_user(user_data)

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

            self.assertRaises(
                BadRequest, add_recipe, {
                    'name': 'Pork',
                    'preparation': 'Everybodys favorite dish',
                    'ingredients': ['Pork', 'Oil', 'Seasoning', 'Beer'],
                    'user_id': 'this aint my id'
                })
Beispiel #7
0
    def test_valid_login(self):
        with server.app_context():
            user_data = {
                'email': '*****@*****.**',
                'first_name': 'test',
                'last_name': 'Jones',
                'password': '******'
            }
            register_user(user_data)

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

            self.assertEqual(
                list(resp.keys()), ['access_token', 'refresh_token'])
Beispiel #8
0
    def test_valid_logout(self, mock_jwt_required, mock_jwt_identity):
        with server.app_context():
            user_data = {
                'email': '*****@*****.**',
                'first_name': 'Marc',
                'last_name': 'Feldman',
                'password': '******'
            }

            user = register_user(user_data)
            mock_jwt_identity.return_value = str(user.id)

            resp_1 = login({
                'email': '*****@*****.**',
                'password': '******'
            })

            logout_creds = 'Bearer ' + str(resp_1['access_token'])
            resp_2 = logout(logout_creds)

            self.assertEqual(resp_2, 'Logout successful')
Beispiel #9
0
def user_login():
    if request.is_json:
        data = request.get_json()
        token = login(data)

        return {'message': token}