Джанго: макет поля на модели - PullRequest
1 голос
/ 14 июля 2011

Как мне назначить фиктивный объект для пользовательского поля в этой модели?В любом случае для обхода проверки «SomeModel.user» должен быть экземпляр «Пользователь»?

 class SomeModel(models.Model):
     user = models.ForeignKey(User)

Я не сохраняю эту модель, она предназначена исключительно для модульного тестирования метода на этой модели.Я также не хочу создавать настоящую модель пользователя.

Ответы [ 2 ]

0 голосов
/ 01 марта 2019

Вы можете использовать unittest.patch для насмешки над свойством:

class TestThing(django.test.TestCase):
    @unittest.patch('my_app.models.SomeModel.user', new_callable=unittest.PropertyMock)
    def test_thing(self, user_field):
        user_field.return_value = 5
        ...

Это работает на полях Django.

0 голосов
/ 14 июля 2011

Вы не можете обойти эту проверку.Ближайшее, что вы можете получить:

class SomeModel(models.Model):
    user_id = models.IntegerField(max_length=10)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...