aboutsummaryrefslogtreecommitdiffstats
path: root/functest/utils/decorators.py
diff options
context:
space:
mode:
Diffstat (limited to 'functest/utils/decorators.py')
-rw-r--r--functest/utils/decorators.py29
1 files changed, 18 insertions, 11 deletions
diff --git a/functest/utils/decorators.py b/functest/utils/decorators.py
index 276235d9..73e0a352 100644
--- a/functest/utils/decorators.py
+++ b/functest/utils/decorators.py
@@ -1,41 +1,48 @@
#!/usr/bin/env python
+# pylint: disable=missing-docstring
+
import errno
-import mock
+import functools
import os
+
+import mock
import requests.sessions
-import urlparse
+from six.moves import urllib
def can_dump_request_to_file(method):
def dump_preparedrequest(request, **kwargs):
- parseresult = urlparse.urlparse(request.url)
+ # pylint: disable=unused-argument
+ parseresult = urllib.parse.urlparse(request.url)
if parseresult.scheme == "file":
try:
- os.makedirs(parseresult.path)
- except OSError as e:
- if e.errno != errno.EEXIST:
+ dirname = os.path.dirname(parseresult.path)
+ os.makedirs(dirname)
+ except OSError as ex:
+ if ex.errno != errno.EEXIST:
raise
- with open(os.path.join(parseresult.path, 'dump.txt'), 'a') as f:
+ with open(parseresult.path, 'a') as dumpfile:
headers = ""
for key in request.headers:
headers += key + " " + request.headers[key] + "\n"
message = "{} {}\n{}\n{}\n\n\n".format(
request.method, request.url, headers, request.body)
- f.write(message)
+ dumpfile.write(message)
return mock.Mock()
def patch_request(method, url, **kwargs):
with requests.sessions.Session() as session:
- parseresult = urlparse.urlparse(url)
+ parseresult = urllib.parse.urlparse(url)
if parseresult.scheme == "file":
- with mock.patch.object(
- session, 'send', side_effect=dump_preparedrequest):
+ with mock.patch.object(session, 'send',
+ side_effect=dump_preparedrequest):
return session.request(method=method, url=url, **kwargs)
else:
return session.request(method=method, url=url, **kwargs)
+ @functools.wraps(method)
def hook(*args, **kwargs):
with mock.patch('requests.api.request', side_effect=patch_request):
return method(*args, **kwargs)