def response_mocker(kwargs, base_url, endpoint_url, status=200,
content_type='application/json', post=False, data=None):
"""
Generates a mocked requests response for a given set of
kwargs, base url and endpoint url
"""
url = re.sub('\{\{(?P<m>[a-zA-Z_]+)\}\}', lambda m: "%s" % kwargs.get(m.group(1)),
base_url + endpoint_url)
with responses.RequestsMock() as rsps:
if post:
rsps.add(responses.POST, url,
body=b'{"data": "some json formatted output"}',
status=status, content_type='application/json')
response = requests.post(url, data=data)
elif content_type == 'application/json':
rsps.add(responses.GET, url,
body=b'{"data": "some json formatted output"}',
status=status, content_type='application/json')
response = requests.get(url)
elif content_type == 'text/plain':
rsps.add(responses.GET, url,
body="Some text-based content\n spanning multiple lines",
status=status, content_type='text/plain')
response = requests.get(url)
else:
rsps.add(responses.GET, url,
body=b"Some other binary stuff...",
status=status, content_type='application/octet-stream')
response = requests.get(url)
return response
评论列表
文章目录