Django app pytest Ключевая ошибка при тестировании

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

Вот представление, которое я собираюсь протестировать:

class IngredientDetailsView(View):
    def get(self, request, id):
        ingredient = Ingredient.objects.get(id=id)
        return render(request, 'diet_app/ingredient_details.html', {'ingredient': ingredient})

и его модель:

class Ingredient(models.Model):
    name = models.CharField(max_length=50, unique=True)
    nutrient = models.IntegerField(choices=NUTRIENTS)
    glycemic_index = models.IntegerField(choices=GLYCEMIC_INDEX)

Вот мое приспособление и тест:

@pytest.fixture
def example_ingredient():
    return Ingredient.objects.create(
        name='apple',
        nutrient=2,
        glycemic_index=2
    )


@pytest.mark.django_db
def test_ingredient_view(client, example_ingredient):
    response = client.get(f'/ingredient_details/{example_ingredient.id}/')
    assert response.status_code == 200
    assert response.context['name'] == 'apple'
    assert response.context['nutrient'] == 2
    assert response.context['glycemic_index'] == 2

Я все еще сталкиваюсь с KeyErrors:

FAILED diet_app/tests.py::test_ingredient_view - KeyError: 'name'

и не знаю почему.

Я новичок в использовании pytest и все еще учусь. Я предполагаю, что проблема заключается в утверждениях полей в моем тесте, потому что когда я удалил поле 'name', ошибка ключа изменилась на 'nutrient'

Вернуться на верх