Как написать модульный тест для проверки удаления записи в модели - PullRequest
1 голос
/ 02 марта 2020

У меня есть модель, я хотел бы написать модульный тест для проверки операций удаления на модели, я написал для создания, чтения и обновления, но я не могу понять, как должно работать удаление. вот мой код.

def create_pay(self):

    pay = Pay.objects.create(user=self.user, amount=2000, appointment_count=2)
    return payout

вот где я вызываю метод create_pay для проверки операции удаления

def test_payout_model_delete(self):
        payout = self.create_payout()
        get_payout = Payout.objects.get(pk=payout.pk)
        del_pay = get_payout.delete()
        self.assertEqual(del_pay, (None))

Но это дает мне эту ошибку AssertionError: (1, {'doctor .Payout ': 1})! = Нет

Ответы [ 2 ]

3 голосов
/ 02 марта 2020

Запрашивать запись и использовать существует () для проверки того, что больше не существует.

def test_payout_model_delete(self):
   payout = self.create_payout()
   pk = payout.pk
   get_payout = Payout.objects.get(pk=payout.pk)
   del_pay = get_payout.delete()
   self.assertFalse(Payout.objects.filter(pk=pk).exists())
0 голосов
/ 02 марта 2020

Вы можете использовать счет вместо типа возврата метода удаления,

def test_payout_model_delete(self):
        payout = self.create_payout()
        payouts_len = Payout.objects.count()
        get_payout = Payout.objects.get(pk=payout.pk)
        get_payout.delete()
        self.assertEqual(Payout.objects.count(), payouts_len - 1)
...