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)
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)
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)
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)
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)