Я возиться с unittest.mock
и у меня есть некоторые проблемы с ним.
У меня есть объект client
с методом get_messages()
, который возвращает response
с атрибутами data
и has_more
. Я хочу сделать это, чтобы вернуть фиксированные data
и has_more
при первом вызове и еще один фиксированный data
и has_more
при втором вызове.
При первом вызове я хочу получить объект response
с атрибутами:
data=['msg1', 'msg2']
has_more=True
Во втором вызове я хочу получить объект response
с атрибутами:
data=['msg3', 'msg4']
Я пытался сделать это таким образом, но я немного растерян, не знаю, так ли это.
@patch('Client')
def test_client_returns_correct_messages(self, MockClient):
MockWebClient.get_messages.side_effects = [
Mock(name='response',
data={'messages': received_messages,
'has_more': True}),
Mock(name='response',
data={'messages': received_messages,
'has_more': False})]
messages = client.get_messages()