Тестирование 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),
...
)