Тестирование Django с использованием Testcase ошибка поиска имени_партии

Я выполняю тестирование для файла models.py Django. После завершения тестирования для нескольких классов я застрял в точке

Сначала позвольте мне поделиться файлом models.py

Я пытаюсь проверить update_batch_name

Итак, мой файл test_batch.py выглядит так

from datetime import datetime
from django import apps
from django.dispatch import receiver
from django.test import TestCase
from django.db.utils import IntegrityError
from django.db.models.signals import post_save, post_delete
from farm_management.models import Farm, Device, BatchYield, Batch
from sop_management.models import BatchSOPManagement


class TestBatch(TestCase):

    def setUp(self):

        self.batch1 = Batch.objects.create(
            commodity_id="2",
            commodity_variety_id="4",
            start_date=datetime(2021, 11, 26, 14, 20, 4),
            commodity_name="Apple",
            acerage="90",
            batch_health="100",
            batch_name="(1) Apple | 2021-11-26"

        )
        self.farm1 = Farm.objects.create(
            farm_id="1"
        )
        self.farm1 = Farm.objects.create(
            farm_id="1"
        )

    def test_batch(self):
        self.assertEqual(self.batch1.commodity_id, "2")
        self.assertEqual(self.batch1.commodity_variety_id, "4")
        self.assertEqual(self.farm1.farm_id, "1")
        self.assertEqual(self.batch1.start_date, "2021-11-26 14:20:14.000000")
        self.assertEqual(self.batch1.commodity_name, "Apple")
        self.assertEqual(self.batch1.acerage, "90")
        self.assertEqual(self.batch1.batch_health, "100")
        self.assertEqual(self.batch1.batch_name, "(1) Apple | 2021-11-26")

Очевидно, что это не способ проведения тестирования

Итак, ошибка составляет

  File "/home/adarsh/igrow-api/venv/lib/python3.8/site-packages/django/db/models/base.py", line 774, in save_base
    post_save.send(
  File "/home/adarsh/igrow-api/venv/lib/python3.8/site-packages/django/dispatch/dispatcher.py", line 180, in send
    return [
  File "/home/adarsh/igrow-api/venv/lib/python3.8/site-packages/django/dispatch/dispatcher.py", line 181, in <listcomp>
    (receiver, receiver(signal=self, sender=sender, **named))
  File "/home/adarsh/igrow-api/app/farm_management/models.py", line 482, in update_batch_count
    instance.farm_id.update_batch_count()
AttributeError: 'NoneType' object has no attribute 'update_batch_count'

----------------------------------------------------------------------
Ran 1 test in 0.279s

FAILED (errors=1)

Итак, если кто-нибудь может помочь выполнить тестирование update_batch_name

Передайте start_date как объект datetime, а не как строку. Методы на модели Batch предполагают, что это datetime

from datetime import datetime

...

class TestBatch(TestCase):

    def setUp(self):
        self.batch1 = Batch.objects.create(
            ...
            start_date=datetime(2021, 11, 26, 14, 20, 4),
            ...
        )
Вернуться на верх