Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAleksey Lim <alsroot@sugarlabs.org>2012-10-01 16:15:14 (GMT)
committer Aleksey Lim <alsroot@sugarlabs.org>2012-10-01 16:15:14 (GMT)
commita0d71feffd4e5fec671ff8f9dede4973dc998854 (patch)
tree0fc091a88a253824b1bcccc7560add3f7bb14b6d
parent6cf0d0cc5fe33aa3b3dfdc460562618279ae7131 (diff)
Make http.Client.get() consistent and do not return conditional Response object
-rw-r--r--sugar_network/toolkit/http.py30
-rwxr-xr-xtests/units/home_mount.py6
-rwxr-xr-xtests/units/node_mount.py6
-rwxr-xr-xtests/units/remote_mount.py6
-rwxr-xr-xtests/units/router.py4
5 files changed, 26 insertions, 26 deletions
diff --git a/sugar_network/toolkit/http.py b/sugar_network/toolkit/http.py
index cb7028a..bb177da 100644
--- a/sugar_network/toolkit/http.py
+++ b/sugar_network/toolkit/http.py
@@ -82,33 +82,29 @@ class Client(object):
self._session.close()
def exists(self, path):
- response = self.request('GET', path, allowed=[404], params=self.params)
+ response = self.request('GET', path, allowed=[404])
return response.status_code != 404
def get(self, path_=None, **kwargs):
- kwargs.update(self.params)
response = self.request('GET', path_, params=kwargs)
- return self._decode_response(response)
+ return self._decode_reply(response)
def post(self, path_=None, data_=None, **kwargs):
- kwargs.update(self.params)
response = self.request('POST', path_, data_,
headers={'Content-Type': 'application/json'}, params=kwargs)
- return self._decode_response(response)
+ return self._decode_reply(response)
def put(self, path_=None, data_=None, **kwargs):
- kwargs.update(self.params)
response = self.request('PUT', path_, data_,
headers={'Content-Type': 'application/json'}, params=kwargs)
- return self._decode_response(response)
+ return self._decode_reply(response)
def delete(self, path_=None, **kwargs):
- kwargs.update(self.params)
response = self.request('DELETE', path_, params=kwargs)
- return self._decode_response(response)
+ return self._decode_reply(response)
def request(self, method, path=None, data=None, headers=None, allowed=None,
- **kwargs):
+ params=None, **kwargs):
if not path:
path = ['']
if not isinstance(path, basestring):
@@ -118,10 +114,16 @@ class Client(object):
headers.get('Content-Type') == 'application/json':
data = json.dumps(data)
+ if params is None:
+ params = self.params
+ else:
+ params.update(self.params)
+
while True:
try:
response = requests.request(method, path, data=data,
- headers=headers, session=self._session, **kwargs)
+ headers=headers, session=self._session, params=params,
+ **kwargs)
except requests.exceptions.SSLError:
_logger.warning('Use --no-check-certificate to avoid checks')
raise
@@ -167,7 +169,7 @@ class Client(object):
if response is not None:
response.content_type = reply.headers['Content-Type']
- return self._decode_response(reply)
+ return self._decode_reply(reply)
def download(self, url_path, out_path, seqno=None, extract=False):
if isdir(out_path):
@@ -280,11 +282,9 @@ class Client(object):
},
)
- def _decode_response(self, response):
+ def _decode_reply(self, response):
if response.headers.get('Content-Type') == 'application/json':
return json.loads(response.content)
- else:
- return response
def _sign(data):
diff --git a/tests/units/home_mount.py b/tests/units/home_mount.py
index 48acd21..3bbaab1 100755
--- a/tests/units/home_mount.py
+++ b/tests/units/home_mount.py
@@ -105,11 +105,11 @@ class HomeMountTest(tests.Test):
self.touch(('file', 'blob'))
local.put(['context', guid, 'preview'], cmd='upload_blob', path=abspath('file'))
- self.assertEqual('blob', local.get(['context', guid, 'preview']).content)
+ self.assertEqual('blob', local.request('GET', ['context', guid, 'preview']).content)
self.touch(('file2', 'blob2'))
local.put(['context', guid, 'preview'], cmd='upload_blob', path=abspath('file2'), pass_ownership=True)
- self.assertEqual('blob2', local.get(['context', guid, 'preview']).content)
+ self.assertEqual('blob2', local.request('GET', ['context', guid, 'preview']).content)
assert not exists('file2')
def test_GetBLOBs(self):
@@ -128,7 +128,7 @@ class HomeMountTest(tests.Test):
self.assertEqual(
'icon-blob',
- client.get(['context', guid, 'icon']).content)
+ client.request('GET', ['context', guid, 'icon']).content)
blob_url = 'http://localhost:%s/context/%s/icon?mountpoint=~' % (local.ipc_port.value, guid)
self.assertEqual(
[{'guid': guid, 'icon': blob_url}],
diff --git a/tests/units/node_mount.py b/tests/units/node_mount.py
index c0f04b0..4f0ef0e 100755
--- a/tests/units/node_mount.py
+++ b/tests/units/node_mount.py
@@ -289,11 +289,11 @@ class NodeMountTest(tests.Test):
self.touch(('file', 'blob'))
client.put(['context', guid, 'preview'], cmd='upload_blob', path=abspath('file'))
- self.assertEqual('blob', client.get(['context', guid, 'preview']).content)
+ self.assertEqual('blob', client.request('GET', ['context', guid, 'preview']).content)
self.touch(('file2', 'blob2'))
client.put(['context', guid, 'preview'], cmd='upload_blob', path=abspath('file2'), pass_ownership=True)
- self.assertEqual('blob2', client.get(['context', guid, 'preview']).content)
+ self.assertEqual('blob2', client.request('GET', ['context', guid, 'preview']).content)
assert not exists('file2')
def test_GetBLOBs(self):
@@ -313,7 +313,7 @@ class NodeMountTest(tests.Test):
self.assertEqual(
'icon-blob',
- client.get(['context', guid, 'icon']).content)
+ client.request('GEt', ['context', guid, 'icon']).content)
blob_url = 'http://localhost:%s/context/%s/icon?mountpoint=%s' % (local.ipc_port.value, guid, tests.tmpdir + '/mnt')
self.assertEqual(
[{'guid': guid, 'icon': blob_url}],
diff --git a/tests/units/remote_mount.py b/tests/units/remote_mount.py
index 986267e..8ccc2c4 100755
--- a/tests/units/remote_mount.py
+++ b/tests/units/remote_mount.py
@@ -258,11 +258,11 @@ class RemoteMountTest(tests.Test):
self.touch(('file', 'blob'))
remote.put(['context', guid, 'preview'], cmd='upload_blob', path=abspath('file'))
- self.assertEqual('blob', remote.get(['context', guid, 'preview']).content)
+ self.assertEqual('blob', remote.request('GEt', ['context', guid, 'preview']).content)
self.touch(('file2', 'blob2'))
remote.put(['context', guid, 'preview'], cmd='upload_blob', path=abspath('file2'), pass_ownership=True)
- self.assertEqual('blob2', remote.get(['context', guid, 'preview']).content)
+ self.assertEqual('blob2', remote.request('GET', ['context', guid, 'preview']).content)
assert not exists('file2')
def test_GetBLOBs(self):
@@ -283,7 +283,7 @@ class RemoteMountTest(tests.Test):
self.assertEqual(
'preview-blob',
- remote.get(['context', guid, 'preview']).content)
+ remote.request('GET', ['context', guid, 'preview']).content)
assert local.ipc_port.value != 8800
url_prefix = 'http://localhost:8800/context/' + guid
self.assertEqual(
diff --git a/tests/units/router.py b/tests/units/router.py
index 2ec35d4..23e4862 100755
--- a/tests/units/router.py
+++ b/tests/units/router.py
@@ -97,7 +97,7 @@ class RouterTest(tests.Test):
client.put(['document', guid_2, 'blob'], payload)
self.assertEqual(
payload,
- client.get(['document', guid_2, 'blob']).content)
+ client.request('GET', ['document', guid_2, 'blob']).content)
client.delete(['document', guid_2])
@@ -223,7 +223,7 @@ class RouterTest(tests.Test):
client = Client('http://localhost:8800', sugar_auth=True)
guid = client.post(['document2'], {'term': 'probe'})
content = urllib2.urlopen(URL).read()
- assert content == client.get(['document2', guid, 'blob']).content
+ assert content == client.request('GET', ['document2', guid, 'blob']).content
def test_Request_MultipleQueryArguments(self):
request = _Request({