AssertionError в модульном тесте Django: Невозможно получить корректный счетчик из базы данных

Я сталкиваюсь с ошибкой AssertionError в своем модульном тесте Django при попытке сохранить POST-запрос к существующему списку. Несмотря на создание списка и успешную отправку POST-запроса, тест завершается со следующей ошибкой:

Failure
Traceback (most recent call last):
  File "C:\ACode\TDD_Django\lists\tests.py", line 105, in test_can_save_a_POST_request_to_an_existing_list
    self.assertEqual(Item.objects.count(), 1)
AssertionError: 0 != 1

Вот соответствующий код:

class NewListTest(TestCase):
    def test_can_save_a_POST_request_to_an_existing_list(self):
        # Arrange inputs and targets.
        correct_list = List.objects.create()
        # Act on the target behavior.
        self.client.post(
            f'/lists/{correct_list.id}/add_item',
            data={'item_text': 'A new item for an existing list'},
        )
        # Assert expected outcomes.
        self.assertEqual(Item.objects.count(), 1)
        new_item = Item.objects.get()
        self.assertEqual(new_item.text, 'A new item for an existing list')
        self.assertEqual(new_item.list, correct_list)

URL: path('lists/<int:list_id>/add_item/', views.add_item, name='add_item')

Вид:

def add_item(request, list_id):
    our_list = List.objects.get(id=list_id)
    Item.objects.create(text=request.POST['item_text'], list=our_list)
    return redirect(f'/lists/{list_id}/')

Модель:

def add_item(request, list_id):
    our_list = List.objects.get(id=list_id)
    Item.objects.create(text=request.POST['item_text'], list=our_list)
    return redirect(f'/lists/{list_id}/')

Я протестировал код вручную, используя библиотеку requests, и убедился, что представление (add_item) работает правильно. Однако модульный тест по-прежнему не работает. Любые соображения о том, почему этот тест может быть неудачным, были бы очень признательны.

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