You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@libcloud.apache.org by an...@apache.org on 2017/04/13 09:33:36 UTC

[30/46] libcloud git commit: use urlparse.quote to catch RFC1738 issues in the mocker

use urlparse.quote to catch RFC1738 issues in the mocker


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/792713e6
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/792713e6
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/792713e6

Branch: refs/heads/trunk
Commit: 792713e69df6356e90de9a0680dd125fcb0f30c5
Parents: 50f47c8
Author: Anthony Shaw <an...@apache.org>
Authored: Thu Apr 13 11:13:14 2017 +1000
Committer: Anthony Shaw <an...@apache.org>
Committed: Thu Apr 13 11:13:14 2017 +1000

----------------------------------------------------------------------
 libcloud/test/__init__.py | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/792713e6/libcloud/test/__init__.py
----------------------------------------------------------------------
diff --git a/libcloud/test/__init__.py b/libcloud/test/__init__.py
index d5c295b..6ee0da1 100644
--- a/libcloud/test/__init__.py
+++ b/libcloud/test/__init__.py
@@ -137,13 +137,20 @@ class MockHttp(LibcloudConnection):
         r_status, r_body, r_headers, r_reason = self._get_request(method, url, body, headers)
         if r_body is None:
             r_body = ''
+        # this is to catch any special chars e.g. ~ in the request. URL
+        url = urlparse.quote(url)
 
         with requests_mock.mock() as m:
             m.register_uri(method, url, text=r_body, reason=r_reason,
                            headers=r_headers, status_code=r_status)
-            super(MockHttp, self).request(
-                method=method, url=url, body=body, headers=headers,
-                raw=raw, stream=stream)
+            try:
+                super(MockHttp, self).request(
+                    method=method, url=url, body=body, headers=headers,
+                    raw=raw, stream=stream)
+            except requests_mock.exceptions.NoMockAddress as nma:
+                raise AttributeError("Failed to mock out URL {0} - {1}".format(
+                    url, nma.request.url
+                ))
 
     def prepared_request(self, method, url, body=None,
                          headers=None, raw=False, stream=False):