4 import requests.sessions
8 def can_dump_request_to_file(method):
10 def dump_preparedrequest(request, **kwargs):
11 parseresult = urlparse.urlparse(request.url)
12 if parseresult.scheme == "file":
13 with open(parseresult.path.replace('/results', ''), 'a') as f:
15 for key in request.headers:
16 headers += key + " " + request.headers[key] + "\n"
17 message = "{} {}\n{}\n{}\n\n\n".format(
18 request.method, request.url, headers, request.body)
22 def patch_request(method, url, **kwargs):
23 with requests.sessions.Session() as session:
24 parseresult = urlparse.urlparse(url)
25 if parseresult.scheme == "file":
26 with mock.patch.object(
27 session, 'send', side_effect=dump_preparedrequest):
28 return session.request(method=method, url=url, **kwargs)
30 return session.request(method=method, url=url, **kwargs)
32 def hook(*args, **kwargs):
33 with mock.patch('requests.api.request', side_effect=patch_request):
34 return method(*args, **kwargs)