Django pytest / update delete view testing

Я работаю над тестированием на pytest для моего первого приложения django, что-то вроде кулинарной книги.

У меня проблемы с редактированием/удалением тестов представления.

Например, у меня есть тест для тестирования добавления представления рецепта.

Вот модель рецепта:

    class Recipe(models.Model):
        """Instructions how to prepare a single dish."""
        title = models.CharField(max_length=50)
        cooking_time = models.IntegerField(help_text='in minutes', validators=[MinValueValidator(1), MaxValueValidator(5000)])
        difficulty_level = models.IntegerField(choices=DIFFICULTY_LEVELS, default=1)
        description = models.TextField()
        created = models.DateTimeField(auto_now_add=True)
        cuisine = models.ForeignKey('Cuisine', on_delete=models.CASCADE, null=True)
        ingredient = models.ManyToManyField(Ingredient, through='IngredientRecipe')
        meal_plan = models.ManyToManyField('MealPlan', through='RecipeMealPlan')

вот его крепление:

    @pytest.fixture()
    def example_recipe():
        rec = Recipe.objects.create(title='rec', cooking_time=10, difficulty_level=2, description='bla, bla, bla')
        return rec

И тесты, которые работают нормально:

@pytest.mark.django_db
def test_add_recipe(client, example_recipe):
    dct = {
        'title': 'rec',
        'cooking_time': 10,
        'difficulty_level': 2,
        'description': 'bla, bla, bla'
    }
    url = reverse('add-recipe')
    response = client.post(url, dct)
    assert response.status_code == 302
    assert Recipe.objects.get(**dct)




@pytest.mark.django_db
def test_add_recipe2(client):
    url = reverse('add-recipe')
    response = client.get(url)
    assert response.status_code == 302

Теперь я пытаюсь написать тест для обновления/удаления представлений рецепта.

В настоящее время мой тест обновления рецепта выглядит следующим образом:

@pytest.mark.django_db
def test_ingredient_update_view(client, example_ingredient):
    url = reverse('update-ingredient', kwargs={'id': example_ingredient.id})
    response = client.get(url)
    assert Ingredient.objects.save(
        name='cos',
        nutrient=2,
        glycemic_index=2
    )

Я знаю, что это неправильно, но у меня возникают проблемы с тем, чтобы заставить это работать. То же самое с удалением представления.

Может кто-нибудь взглянуть на вышеуказанное и дать мне совет?

Заранее спасибо за любую помощь.

@pytest.mark.django_db
def test_ingredient_update_view(client, example_ingredient):
    url = reverse('update-ingredient', kwargs={'pk': example_ingredient.pk})
    response = client.get(url)
    obj = Ingredient.objects.get(example_ingredient.pk)
    obj.name = 'else'
    obj.save()
    assert response.status_code == 302

текущая ошибка:

TypeError: 'int' object is not iterable
Вернуться на верх