Ошибка экземпляра Django Test models.py AttributeError: объект 'NoneType' не имеет атрибута
Я выполняю тестовый пример Django для файла models.py Файл models.py выглядит как
для файла models.py сначала я тестирую класс Batch в файле 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(
batch_name="(907) Cucumber | 2021-08-21",
acerage="4",
commodity_name="Cucumber"
)
self.farm_id = Farm.objects.create(farmer_id="106", batch_count="1")
def test_update_batch_name(self):
for i in range(5):
Batch.objects.create(farm_id=self.farm_id, commodity_name="Cucumber")
self.batch1.update_batch_name()
assert self.batch1.batch_name == 5
def test_batch(self):
self.assertEqual(self.batch1.batch_name, "(907) Cucumber | 2021-08-21")
self.assertEqual(self.batch1.acerage, "4")
self.assertEqual(self.farm_id.farmer_id, "106")
self.assertEqual(self.batch1.commodity_name, "Cucumber")
def test_return(self):
batch11 = Batch.objects.create(batch_name="(907) Cucumber | 2021-08-21", acerage="4")
batch11.save()
self.assertEqual(str(batch11), "(907) Cucumber | 2021-08-21")
def test_batch_count(self):
for i in range(1):
Batch.objects.create(farm_id=self.farm_id, acerage="4")
self.batch1.update_batch_count()
assert self.batch1.batch_count == 1
При выполнении тестирования пакетного класса каждый раз я получаю одну и ту же ошибку ошибка выглядит
ERROR: test_update_batch_name (farm_management.test.models.test_batch.TestBatch)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/admin123/igrow-api/app/farm_management/test/models/test_batch.py", line 14, in setUp
self.batch1 = Batch.objects.create(
File "/home/admin123/igrow-api/igrow-api-backend/lib/python3.8/site-packages/django/db/models/manager.py", line 85, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/home/admin123/igrow-api/igrow-api-backend/lib/python3.8/site-packages/django/db/models/query.py", line 453, in create
obj.save(force_insert=True, using=self.db)
File "/home/admin123/igrow-api/app/farm_management/models.py", line 179, in save
super(Batch, self).save(*args, **kwargs)
File "/home/admin123/igrow-api/igrow-api-backend/lib/python3.8/site-packages/django/db/models/base.py", line 726, in save
self.save_base(using=using, force_insert=force_insert,
File "/home/admin123/igrow-api/igrow-api-backend/lib/python3.8/site-packages/django/db/models/base.py", line 774, in save_base
post_save.send(
File "/home/admin123/igrow-api/igrow-api-backend/lib/python3.8/site-packages/django/dispatch/dispatcher.py", line 180, in send
return [
File "/home/admin123/igrow-api/igrow-api-backend/lib/python3.8/site-packages/django/dispatch/dispatcher.py", line 181, in <listcomp>
(receiver, receiver(signal=self, sender=sender, **named))
File "/home/admin123/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.007s
FAILED (errors=1)
Destroying test database for alias 'default'...