У меня есть тест ниже, используя mock
на Python 2.6.Mock Confusion with Path
@patch('testme.check.RE.query')
def test_check(query):
query.filter.one = MagicMock(return_value=None)
....
assert against_experiment(cl, ei, cd)
Внутри модуля Я хочу, чтобы проверить, у меня есть
def check_against_experiment(c, e, c):
re = RE.query.filter(RE.e_id == e).one()
Два вопроса:
При осмотре re = RE.query.filter(RE.e_id == e).one()
, я вижу <MagicMock name='query.filter().one()' id='62856528'>
.
Почему это не возвращается None
?
Другой вопрос, когда я изменяю @path('testme.check.RE.query')
@path('testme.check.RE.query')
к и изменить query.filter.one
к query.one
, я заметил, что ничего не издевались из. Почему это так?
Когда вы проверили, вы проверили, что находится внутри 'return_value'? Кроме того, точно так же, как тест, положите 'return_value = 123' и также проверите' return_value'. Что касается вашего второго вопроса, все зависит от вашего относительного импорта. Я не знаю, как ваш проект настроен и как все относится друг к другу, но, вероятно, из-за этого. Кроме того, они одинаковы: '@path ('testme.check.RE.query')' to '@path ('testme.check.RE.query')' – idjaw