Я использую bottle рамки. У меня есть код, какMock bottle.request объект в python
from bottle import request
def abc():
x = request.get_header('x')
...
...
data = request.json()
...
...
Я пишу союзные для этой функции, я хочу, чтобы дразнить get_header
и json
из bottle.request
, и вернуть мои ложные данные от этого.
Я пробовал.
from mock import patch
@patch('bottle.request.headers', return_value={'x': 'x'})
@patch('bottle.request.json', return_value=...)
def test_abc(self, _, __):
...
...
Но это дает ошибку для request.headers
только для чтения. Мне также нужно высмеять request.json
.
Благодарим за помощь заранее.
Отметьте фактический объект 'request' и присвойте ему соответствующие атрибуты' json' и 'headers'. –
@AlexHall, Спасибо за ответ. Если я издеваюсь над целым объектом 'request', тогда я должен издеваться над многими атрибутами. Есть ли способ высмеять только 1-2 атрибута, тогда его хороший вариант. – Nilesh
@AlexHallI попробовал 'request = Mock (headers = {'x': 'x'}, json = {})', но он терпит неудачу. :( – Nilesh