Witam,
piszę swoją pierwszą aplikację w django i mam problem z napisaniem testu do jednego z widoków.
Oto on:
class IngredientAddView(PermissionRequiredMixin, CreateView):
permission_required = 'diet_app.add_ingredient'
model = Ingredient
fields = '__all__'
success_url = '/ingredients_list'
urls
:
:
path('add_ingredient/', IngredientAddView.as_view(), name='add-ingredient')
Sam test jaki napisałem wygląda następująco:
@pytest.mark.django_db
def test_add_ingredient2(client):
client.post('/add_ingredient/', {
'name': 'groszek',
'nutrient': '1',
'glycemic_index': '1'
})
assert Ingredient.objects.get(
name='groszek',
nutrient=1,
glycemic_index=1
)
Model:
class Ingredient(models.Model):
name = models.CharField(max_length=50, unique=True)
nutrient = models.IntegerField(choices=NUTRIENTS)
glycemic_index = models.IntegerField(choices=GLYCEMIC_INDEX)
Wzoruje się na przykładach jakie do tej pory miałem na zajęciach, ale test ewidentnie nie działa. Błąd jaki otrzymuje to:
FAILED diet_app/tests.py::test_add_ingredient2 - diet_app.models.Ingredient.DoesNotExist: Ingredient matching query does not exist.
Będę wdzięczny za podpowiedź co robię źle.