예제 #1
0
    def test_retrive_ingredients_assigned_to_recipes(self, registred_user,
                                                     logged_client):
        """Test filtering ingredients by those assigned to recipes"""
        ingredient1 = Ingredient.objects.create(user=registred_user,
                                                name='Turkey')
        ingredient2 = Ingredient.objects.create(user=registred_user,
                                                name='Apples')
        recipe = Recipe.objects.create(title='Apple crumble',
                                       time_minutes=5,
                                       price=10,
                                       user=registred_user)
        recipe.ingredients.add(ingredient2)

        response = logged_client.get(INGREDIENTS_URL, {'assigned_only': 1})

        serializer1 = IngredientSerializer(ingredient1)
        serializer2 = IngredientSerializer(ingredient2)

        assert serializer1.data not in response.data
        assert serializer2.data in response.data
예제 #2
0
    def test_retrieve_ingredients_assigned_to_recipies(self):
        """Test filter ingredients by those assigned to recipes """

        ingredient1 = Ingredient.objects.create(user=self.user, name='apple')

        ingredient2 = Ingredient.objects.create(user=self.user, name='apple2')
        recipe = Recipe.objects.create(user=self.user,
                                       title='juice',
                                       time_minutes=3,
                                       price=6)

        recipe.ingredients.add(ingredient1)

        res = self.client.get(INGREDIENT_URL, {'assigned_only': 1})

        serializer1 = IngredientSerializer(ingredient1)
        serializer2 = IngredientSerializer(ingredient2)

        self.assertIn(serializer1.data, res.data)
        self.assertNotIn(serializer2.data, res.data)
    def test_retrieve_ingredients_assigned_to_recipes(self):
        """Test filtering ingredients by those assigned to recipes"""
        ingredient1 = Ingredient.objects.create(user=self.user, name='apples')
        ingredient2 = Ingredient.objects.create(user=self.user, name='banana')

        recipe = Recipe.objects.create(
            title='sample recipe',
            price=3,
            time=8,
            user=self.user
        )

        recipe.ingredients.add(ingredient1)

        res = self.client.get(INGREDIENTS_URL, {'assigned_only': 1})
        serializer1 = IngredientSerializer(ingredient1)
        serializer2 = IngredientSerializer(ingredient2)

        self.assertIn(serializer1.data, res.data)
        self.assertNotIn(serializer2.data, res.data)
예제 #4
0
    def test_retrive_ingredients_liar(self):
        """test if authenticated user has access to ingredients"""
        Ingredient.objects.create(user=self.user, name='Tomato')
        Ingredient.objects.create(user=self.user, name='Salt')

        res = self.client.get(INGREDIENTS_URL)

        ingredients = Ingredient.objects.all().order_by('-name')
        serializer = IngredientSerializer(ingredients, many=True)
        self.assertEqual(res.status_code, status.HTTP_200_OK)
        self.assertEqual(res.data, serializer.data)
예제 #5
0
    def test_retrieve_ingredients_assigned_to_recipes(self):
        """
        Test that filtering by ingredients by those that are assigned to
        a recipe is successful. API accepts a param called "assigned_only"
        which will only retireve ingredients that are assigned to a recipe
        """
        ingredient1 = Ingredient.objects.create(user=self.user, name='Milk')
        ingredient2 = Ingredient.objects.create(user=self.user, name='Butter')
        recipe = Recipe.objects.create(title='Chocolate Milkshake',
                                       time_minutes=2,
                                       price=2.50,
                                       user=self.user)
        recipe.ingredients.add(ingredient1)
        res = self.client.get(INGREDIENTS_URL, {'assigned_only': 1})

        serializer1 = IngredientSerializer(ingredient1)
        serializer2 = IngredientSerializer(ingredient2)
        self.assertEqual(res.status_code, status.HTTP_200_OK)
        self.assertIn(serializer1.data, res.data)
        self.assertNotIn(serializer2.data, res.data)
예제 #6
0
    def test_retrieve_ingredient_list(self):
        """ TEst retrieving a lsit of ingredients """
        Ingredient.objects.create(user=self.user, name="Kale")
        Ingredient.objects.create(user=self.user, name="Salt")

        res = self.client.get(INGREDIENTS_URL)

        Ingredients = Ingredient.objects.all().order_by("-name")
        serializer = IngredientSerializer(Ingredients, many=True)
        self.assertEqual(res.status_code, status.HTTP_200_OK)
        self.assertEqual(res.data, serializer.data)
    def test_retrieve_ingredients_assigned_to_recipe(self):
        """Test filtering ingredients by those assigned to recipes"""
        ingredient1 = Ingredient.objects.create(user=self.user, name='Bourbon')
        ingredient2 = Ingredient.objects.create(user=self.user,
                                                name='Vermouth')
        recipe = Recipe.objects.create(title='Boulevardier',
                                       time_minutes=5,
                                       price=12.00,
                                       user=self.user)
        recipe.ingredients.add(ingredient1)

        res = self.client.get(INGREDIENTS_URL, {'assigned_only': 1})

        self.assertEqual(res.status_code, status.HTTP_200_OK)

        serializer1 = IngredientSerializer(ingredient1)
        serializer2 = IngredientSerializer(ingredient2)

        self.assertIn(serializer1.data, res.data)
        self.assertNotIn(serializer2.data, res.data)
예제 #8
0
    def test_retrieve_ingredients(self):
        """Test retrieving ingredients."""
        Ingredient.objects.create(name='Tomato', user=self.user)
        Ingredient.objects.create(name='Cucumber', user=self.user)
        expected_ingredients = IngredientSerializer(
            Ingredient.objects.all().order_by('-name'), many=True)

        res = self.client.get(INGREDIENTS_URL)

        self.assertEqual(res.status_code, status.HTTP_200_OK)
        self.assertEqual(res.data, expected_ingredients.data)
    def test_retrieve_ingredientss_assigned_to_recipes(self):
        """Test only ingredientss with recipes returned"""
        ingredients1 = Ingredient.objects.create(user=self.user, name="Lunch")
        ingredients2 = Ingredient.objects.create(user=self.user, name="Dinner")
        recipe = Recipe.objects.create(
            title='Ming on toast',
            time_minutes=10,
            price=20.00,
            user=self.user,
        )

        recipe.ingredients.add(ingredients1)

        res = self.client.get(INGREDIENTS_URL, {'assigned_only': 1})

        serializer1 = IngredientSerializer(ingredients1)
        serializer2 = IngredientSerializer(ingredients2)

        self.assertIn(serializer1.data, res.data)
        self.assertNotIn(serializer2.data, res.data)
예제 #10
0
    def test_retrieve_ingredients_list(self):
        Ingredient.objects.create(user=self.user, name='Cucamber')
        Ingredient.objects.create(user=self.user, name='Zucchini')

        res = self.client.get(INGREDIENTS_URL)

        ingredients = Ingredient.objects.all().order_by('-name')
        serializer = IngredientSerializer(ingredients, many=True)

        self.assertEqual(res.status_code, status.HTTP_200_OK)
        self.assertEqual(res.data, serializer.data)
예제 #11
0
    def test_retrieve_ingredients(self):
        """test retrieving ingredients"""
        Ingredient.objects.create(user=self.user, name='Vegan')
        Ingredient.objects.create(user=self.user, name='Dessert')

        res = self.client.get(INGREDIENTS_URL)

        Ingredients = Ingredient.objects.all().order_by('-name')
        serializer = IngredientSerializer(Ingredients, many=True)
        self.assertEqual(res.status_code, status.HTTP_200_OK)
        self.assertEqual(res.data, serializer.data)
예제 #12
0
    def test_if_can_view(self):
        '''Tests if the user can view his ingredients'''
        create_ingredient(self.user, 'cabbage')
        ingredient = Ingredient.objects.filter(name='cabbage', owner=self.user)

        res = self.client.get(INGREDIENT_URL)

        serializer = IngredientSerializer(ingredient, many=True)

        self.assertEqual(res.status_code, status.HTTP_200_OK)
        self.assertEqual(serializer.data, res.data)
    def test_retrieve_ingredients(self):
        Ingredient.objects.create(user=self.user, name='Ing Name 1')
        Ingredient.objects.create(user=self.user, name='Ing Name 2')

        response = self.client.get(INGREDIENTS_URL)

        ingredients = Ingredient.objects.all().order_by('name')
        serializer = IngredientSerializer(ingredients, many=True)

        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(response.data, serializer.data)
예제 #14
0
    def test_retrieve_tags_assigned_to_recipes(self):
        """Test filtering ingredient by those assigned to recipes"""
        ing1 = Ingredient.objects.create(user=self.user, name='Apples')
        ing2 = Ingredient.objects.create(user=self.user, name='Turkey')

        recipe = Recipe.objects.create(
            title="Apple crumple",
            time_minutes=5,
            price=10.00,
            user=self.user
        )

        recipe.ingredients.add(ing1)
        res = self.client.get(INGREDIENTS_URL, {'assigned_only': 1})

        serializer1 = IngredientSerializer(ing1)
        serializer2 = IngredientSerializer(ing2)

        self.assertIn(serializer1.data, res.data)
        self.assertNotIn(serializer2.data, res.data)
예제 #15
0
    def test_retrieve_ingredient_list(self):
        """Test retrieving a list of ingredients"""
        Ingredient.objects.create(user=self.user, name='Kale')
        Ingredient.objects.create(user=self.user, name='Salt')

        res = self.client.get(INGREDIENT_URL)

        ingredients = Ingredient.objects.all().order_by('-name')
        serializer = IngredientSerializer(ingredients, many=True)
        self.assertEqual(res.status_code, status.HTTP_200_OK)
        self.assertEqual(res.data, serializer.data)
예제 #16
0
    def test_filter_ingredients_assigned_to_recipes(self):
        """Test filter ingredients by those assigned to recipes"""
        ingredient1 = Ingredient.objects.create(user=self.user,
                                                name='ingredient one')
        ingredient2 = Ingredient.objects.create(user=self.user,
                                                name='ingredient two')
        recipe = Recipe.objects.create(
            user=self.user,
            title='test recipe',
            time_minutes=10,
            price=5.00
        )
        recipe.ingredients.add(ingredient1)

        res = self.client.get(INGREDIENTS_URL, {'assigned_only': 1})

        serializer1 = IngredientSerializer(ingredient1)
        serializer2 = IngredientSerializer(ingredient2)
        self.assertIn(serializer1.data, res.data)
        self.assertNotIn(serializer2.data, res.data)
예제 #17
0
    def test_retrive_ingredient_list(self, logged_client, registred_user):
        """Test retrieving a list og ingredients"""
        Ingredient.objects.create(user=registred_user, name="Kale")
        Ingredient.objects.create(user=registred_user, name="Salt")

        response = logged_client.get(INGREDIENTS_URL)
        ingredients = Ingredient.objects.all().order_by('-name')
        serializer = IngredientSerializer(ingredients, many=True)

        assert response.status_code == status.HTTP_200_OK
        assert response.data == serializer.data
    def test_retrieve_ingredients_success(self):
        """Test retrieving ingredients"""
        Ingredient.objects.create(name="Salt", user=self.user)
        Ingredient.objects.create(name="Pepper", user=self.user)

        res = self.client.get(INGREDIENT_URL)

        ingredients = Ingredient.objects.all()
        serializer = IngredientSerializer(ingredients, many=True)

        self.assertEqual(res.status_code, status.HTTP_200_OK)
        self.assertEqual(res.data, serializer.data)
    def test_retrieve_ingredients(self):
        """Test that ingredients are retrieved"""
        Ingredient.objects.create(name='Grape', user=self.user)
        Ingredient.objects.create(name='Mango', user=self.user)

        res = self.client.get(INGREDIENT_URL)
        ingredients = Ingredient.objects.all().order_by('-name')

        serializer = IngredientSerializer(ingredients, many=True)

        self.assertEqual(res.status_code, status.HTTP_200_OK)
        self.assertEqual(res.data, serializer.data)
예제 #20
0
    def test_get_ingredients(self):
        """Test ingredient retrieval for authorized user"""

        Ingredient.objects.create(user=self.user, name='Beef')
        Ingredient.objects.create(user=self.user, name='Pork')

        res = self.client.get(INGREDIENTS_URL)

        ingredients = Ingredient.objects.all().order_by('-name')
        serializer = IngredientSerializer(ingredients, many=True)
        self.assertEqual(res.status_code, status.HTTP_200_OK)
        self.assertEqual(res.data, serializer.data)
예제 #21
0
    def test_retrieve_ingredient_list(self):
        """testa se obtemos uma lista de ingredientes"""
        Ingredient.objects.create(user=self.user, name='Batata')
        Ingredient.objects.create(user=self.user, name='Sal')

        res = self.client.get(INGREDIENTS_URL)

        ingredientes = Ingredient.objects.all().order_by('-name')
        serializer = IngredientSerializer(ingredientes, many=True)

        self.assertEqual(res.status_code, status.HTTP_200_OK)
        self.assertEqual(res.data, serializer.data)
예제 #22
0
    def test_retrieve_ingredient_list(self):
        '''Test retrieving a list of ingredients'''
        Ingredient.objects.create(user=self.user, title='Vegan')
        Ingredient.objects.create(user=self.user, title='Dessert')

        response = self.client.get(INGREDIENTS_URL)

        ingredients = Ingredient.objects.all().order_by('-title')
        serializer = IngredientSerializer(ingredients, many=True)

        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(response.data, serializer.data)
    def test_retrieve_ingredients(self):
        """Test retrieving ingredients"""
        Ingredient.objects.create(user=self.user, name="Cucumber")
        Ingredient.objects.create(user=self.user, name="Brinjal")

        res = self.client.get(INGREDIENT_URL)

        ingredient = Ingredient.objects.all().order_by('-name')
        serializer = IngredientSerializer(ingredient, many=True)

        self.assertEqual(res.status_code, status.HTTP_200_OK)
        self.assertEqual(res.data, serializer.data)
예제 #24
0
    def test_retrive_ingredient_list(self):
        """Test retriving the list of ingredient"""
        Ingredient.objects.create(user=self.user, name="Apple")
        Ingredient.objects.create(user=self.user, name="Vinegar")
        res = self.client.get(INGREDIENT_URL)
        ingredient = Ingredient.objects.all().order_by('-name')

        # serializing the queryset into different form
        serializer = IngredientSerializer(ingredient, many=True)

        self.assertEqual(res.status_code, status.HTTP_200_OK)
        self.assertEqual(res.data, serializer.data)
    def test_retrieve_ingredients_authorized(self):
        """
        Test that ingredients can be retrieved after authentication
        """
        Ingredient.objects.create(user=self.user, name="Carrot")
        Ingredient.objects.create(user=self.user, name="Salt")
        res = self.client.get(INGREDIENTS_URL)
        ingredients_model = Ingredient.objects.all().order_by("-name")
        serializer = IngredientSerializer(ingredients_model, many=True)

        self.assertEqual(res.status_code, status.HTTP_200_OK)
        self.assertEqual(res.data, serializer.data)
    def test_for_retrieving_ingredient_list(self):
        """retrieves ingredient list"""
        Ingredients.objects.create(user=self.user, name='Cucumber')
        Ingredients.objects.create(user=self.user, name='Potato')

        url = reverse('recipe:ingredients-list')
        res = self.client.get(url)

        ingredients = Ingredients.objects.all().order_by('-name')
        serializer = IngredientSerializer(ingredients, many=True)
        self.assertEqual(res.status_code, status.HTTP_200_OK)
        self.assertEqual(res.data, serializer.data)
예제 #27
0
    def test_retrieve_ingredients(self):
        """ Test retrieving ingredients """
        Ingredient.objects.create(user=self.user, name="Mustard Powder")
        Ingredient.objects.create(user=self.user, name="Red Chilli")

        response = self.client.get(INGREDIENTS_URL)

        ingredients = Ingredient.objects.all().order_by("-name")
        serializer = IngredientSerializer(ingredients, many=True)

        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(response.data, serializer.data)
    def test_retrieve_ingredient_list(self):
        """Test retrieving a list of ingredients"""
        sample_ingredient(user=self.user, name='Sugar')
        sample_ingredient(user=self.user, name='Salt')

        resp = self.client.get(INGREDIENTS_URL)

        ingredients = Ingredient.objects.all()
        serializer = IngredientSerializer(ingredients, many=True)

        self.assertEqual(resp.status_code, status.HTTP_200_OK)
        self.assertEqual(resp.data, serializer.data)
    def test_retrieve_ingredients_list(self):
        """Test ingredients can be retrieved by authorized user"""
        Ingredient.objects.create(user=self.user, name="Kale")
        Ingredient.objects.create(user=self.user, name="Salt")

        res = self.client.get(INGREDIENTS_URL)

        ingredients = Ingredient.objects.all().order_by('-name')
        serializer = IngredientSerializer(ingredients, many=True)

        self.assertEqual(res.status_code, status.HTTP_200_OK)
        self.assertEqual(res.data, serializer.data)
예제 #30
0
    def test_retrieve_ingredient(self):
        """Test the retrievement of user's ingredients"""
        Ingredient.objects.create(user=self.user, name="TestIngredient1")
        Ingredient.objects.create(user=self.user, name="TestIngredient2")

        res = self.client.get(INGREDIENT_URL)

        ingredients = Ingredient.objects.all().order_by('-name')
        serializer = IngredientSerializer(ingredients, many=True)

        self.assertEqual(res.status_code, status.HTTP_200_OK)
        self.assertEqual(res.data, serializer.data)