メソッドによって返されるデータの属性にパッチを適用したいと思います。
私が次の簡略化されたピースコードを持っていると仮定します。
@patch('requests.post')
class TestKeywordsApi(BaseTest):
# Instantiate API class and set the apikey
def setUp(self):
BaseTest.setUp(self)
self.fixtures = FIXTURES
self.api = BaseApi()
def mock_requests_post(self, url, data=None):
''' Mock method for post method from responses library.
It replaces the responses.post calls in Api class.
'''
url = self.encode_url(url, data)
if url:
return self.fixtures[url]
def test_save_success(self, mock_post):
mock_post.side_effect = self.mock_requests_post
response = self.api.post(keyword, params={...})
# list of asserts
# original class calling requests.post
import requests
class BaseApi(object):
def post(self, action, params):
''' Sends a POST request to API '''
response = requests.post(self.build_url(action), data=params).content
上記のコードは、mockメソッドがリクエストライブラリに存在する「content」属性のモック/スタブを提供しないために失敗します。コンテンツ属性をスタブする方法を知っている人はいますか?