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='Turkey')
        recipe = Recipe.objects.create(title='Apple crumble',
                                       time_minutes=5,
                                       price=10.00,
                                       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)
    def test_retrieve_ingredient_list(self):
        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)
示例#3
0
    def retrieve_ingredients_assigne_to_recipe(self):
        """test retrieved ingredients by those assigned to recipes"""
        ingredient1 = Ingredient.objects.create(name='Onion', user=self.user)
        ingredient2 = Ingredient.objects.create(name='Tomato', user=self.user)

        recipe = Recipe.objects.create(user=self.user,
                                       title='Mutura',
                                       time_minutes=4,
                                       price=13.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)
示例#4
0
 def test_retrieve_ingredients_list(self):
     """test retrieveing a lust of ingredients"""
     Ingredient.objects.create(user=self.user, name='sugar')
     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_get_ingredients(self):
        Ingredient.objects.create(name='Vinegar', user=self.user)
        Ingredient.objects.create(name='Tomato', user=self.user)

        ingredients = Ingredient.objects.all()
        serializer = IngredientSerializer(ingredients, many=True)
        resp = self.client.get(INGREDIENT_URL)

        self.assertEqual(resp.status_code, status.HTTP_200_OK)
        self.assertEqual(resp.data, serializer.data)
示例#6
0
    def test_get_ingredients_limit_to_user(self):
        other_user = get_user_model().objects.create_user(
            email='*****@*****.**',
            password='******'
        )
        Ingredient.objects.create(name='Vinegar', user=self.user)
        Ingredient.objects.create(name='Tomato', user=other_user)
        ingredients = Ingredient.objects.filter(
            user=self.user
        ).order_by('-name')
        serializer = IngredientSerializer(ingredients, many=True)

        resp = self.client.get(INGREDIENT_URL)
        self.assertEqual(resp.status_code, status.HTTP_200_OK)
        self.assertEqual(resp.data, serializer.data)