From 12b7a2b54f4e3c36d49dec2b2620826aa7029a3e Mon Sep 17 00:00:00 2001 From: SerenaFeng Date: Mon, 12 Mar 2018 21:05:51 +0800 Subject: format output JIRA: RELENG-348 Change-Id: I8f6edae6ed70542f5dde45d81601c35d32af96d9 Signed-off-by: SerenaFeng --- .../testapiclient/utils/http_client.py | 36 ++++++++++++++-------- 1 file changed, 24 insertions(+), 12 deletions(-) (limited to 'testapi/testapi-client/testapiclient/utils/http_client.py') diff --git a/testapi/testapi-client/testapiclient/utils/http_client.py b/testapi/testapi-client/testapiclient/utils/http_client.py index 6be33ee..359dd14 100644 --- a/testapi/testapi-client/testapiclient/utils/http_client.py +++ b/testapi/testapi-client/testapiclient/utils/http_client.py @@ -1,3 +1,4 @@ +import httplib import json import requests @@ -25,31 +26,42 @@ class HTTPClient(object): HTTPClient.__instance = self def get(self, url): - return requests.get(url) + return self._parse_response('Get', requests.get(url)) def post(self, url, data): - return self._request('post', url, - data=json.dumps(data), - headers=self.headers) + return self._parse_response('Create', + self._request('post', url, + data=json.dumps(data), + headers=self.headers)) def put(self, url, data): - return self._request('put', url, - data=json.dumps(data), - headers=self.headers) + return self._parse_response('Update', + self._request('put', url, + data=json.dumps(data), + headers=self.headers)) def delete(self, url, *args): data = json.dumps(args[0]) if len(args) > 0 else None - return self._request('delete', url, - data=data, - headers=self.headers) + return self._parse_response('Delete', + self._request('delete', url, + data=data, + headers=self.headers)) def _request(self, method, *args, **kwargs): return getattr(user.User.session, method)(*args, **kwargs) + def _raise_failure(self, op, response): + raise Exception('{} failed: {}'.format(op, response.reason)) + + def _parse_response(self, op, response): + if response.status_code == httplib.OK: + return response.json() if op != 'Delete' else None + else: + self._raise_failure(op, response) + def _request(method, *args, **kwargs): - client = HTTPClient.get_Instance() - return getattr(client, method)(*args, **kwargs) + return getattr(HTTPClient.get_Instance(), method)(*args, **kwargs) def get(url): -- cgit 1.2.3-korg