Как издеваться над функцией Django Model.save () в python? - PullRequest
2 голосов
/ 31 августа 2011

Я использую библиотеку mock и хочу иметь возможность смоделировать функцию save() моего модельного класса следующим образом:

Дважды исходная функция должна бытьвызывается (и успешно удается сохранить модель), и в третий раз он должен выдать исключение.

Это для модульного теста функции, которая трижды вызывает save (и этот конкретный тест долженобработать случай, в котором только третий вызов терпит неудачу).

1 Ответ

1 голос
/ 01 сентября 2011

На основе http://pypi.python.org/pypi/mock документации.

>>> values = [1, 2]
>>> def side_effect():
...     return values.pop()
...
>>> real = SomeModelClass()
>>> real.save = Mock(side_effect=side_effect)

Должен работать дважды, а затем каждый раз после этого выдавать IndexError.

Понятия не имею, что этоможет продемонстрировать ваш код, когда инфраструктура перестает работать.Вы также тестируете все вызовы ОС?Все вызовы библиотеки Python?Все другие методы Django, чтобы увидеть, что ваше приложение каким-то образом справляется с этими сбоями?

...