Я пытаюсь переопределить пользовательское свойство модели Django через factory_boy
для целей тестирования. Но похоже, что он просто использует поведение модели по умолчанию. Фабричный мальчик не может изменить поведение пользовательских атрибутов по умолчанию?
Вот базовый тест, который я написал:
models.py:
class Session(models.Model):
name = models.CharField(max_length=100)
@property
def foo(self):
return method_not_callable_in_testing()
def method_not_callable_in_testing():
return 42
SessionFactory.py:
class SessionFactory(factory.django.DjangoModelFactory):
class Meta:
model = Session
name = "session"
foo = 1337
tests.py: класс TestSession(TestCase):
def test_custom_attribute_overwritten_by_factoryboy(self):
session = SessionFactory.create()
self.assertEquals(session.foo, 1337)
При запуске тестов я получаю следующую ошибку:
F
======================================================================
FAIL: test_custom_attribute_overwritten_by_factoryboy (bar.tests.TestSession)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/sh4ke/repos/foo/bar/tests.py", line 10, in test_custom_attribute_overwritten_by_factoryboy
self.assertEquals(session.foo, 1337)
AssertionError: 42 != 1337