Django не может ограничить создание модели, передавая отсутствие параметра в objects.create()

Я делаю сайт, используя Python, Django, pytest и метод TDD. Одна из моих целей - не позволить создать элемент в базе данных, если я не передаю никаких аргументов в качестве параметров в Item.objects.create().

У меня есть следующие тесты:

def test_not_possible_to_create_items_with_empty_name(self):
  with pytest.raises(IntegrityError):
    item = Item.objects.create()

Pytest не справляется с этим тестом и говорит, что он не поднимается: Failed: DID NOT RAISE <class 'django.db.utils.IntegrityError'>

Я не был уверен, что тест не работает или тип ошибки, которую он выдает, отличается, поэтому я сделал тест, чтобы проверить, работает ли он:

def test_something(self):
  item = Item.objects.create()

И этот тест проходит, так что он не поднимается.
Моя модель выглядит следующим образом:

class Item(models.Model):
  name = models.TextField(
  null=False,
  blank=False,       
  unique=True,       
)

Я хочу, чтобы нельзя было создать недействительное имя типа "", но оно не поднимается, так как:

self = <item.tests.test.TestItemModel object at 0x7f79fd448910>

def test_not_possible_to_create_item_with_blank_name(self):
  with pytest.raises(IntegrityError):
    item = Item.objects.create(name="")
Failed: DID NOT RAISE <class 'django.db.utils.IntegrityError'>
Вернуться на верх