summaryrefslogtreecommitdiffstats
path: root/testapi/testapi-client/testapiclient/http_client.py
diff options
context:
space:
mode:
Diffstat (limited to 'testapi/testapi-client/testapiclient/http_client.py')
-rw-r--r--testapi/testapi-client/testapiclient/http_client.py72
1 files changed, 72 insertions, 0 deletions
diff --git a/testapi/testapi-client/testapiclient/http_client.py b/testapi/testapi-client/testapiclient/http_client.py
new file mode 100644
index 0000000..a2bd65d
--- /dev/null
+++ b/testapi/testapi-client/testapiclient/http_client.py
@@ -0,0 +1,72 @@
+import json
+
+import requests
+
+
+class HTTPClient(object):
+
+ __instance = None
+ headers = {'Content-type': 'application/json', 'Accept': 'text/plain'}
+
+ @staticmethod
+ def get_Instance():
+ """ Static access method. """
+ if HTTPClient.__instance is None:
+ HTTPClient()
+ return HTTPClient.__instance
+
+ def __init__(self):
+ """ Virtually private constructor. """
+ if HTTPClient.__instance is not None:
+ raise Exception("This class is a singleton!")
+ else:
+ HTTPClient.__instance = self
+
+ def get(self, url):
+ r = requests.get(url)
+ if r.status_code == 200:
+ return r.json()
+ else:
+ return r.text
+
+ def post(self, url, session, data):
+ r = session.post(url,
+ data=json.dumps(data),
+ headers=HTTPClient.headers)
+ return r
+
+ def put(self, url, session, data):
+ r = session.put(url,
+ data=json.dumps(data),
+ headers=HTTPClient.headers)
+ return r.text
+
+ def delete(self, url, session, *args):
+ if(args.__len__ > 0):
+ r = session.delete(url,
+ data=json.dumps(args[0]),
+ headers=HTTPClient.headers)
+ else:
+ r = session.delete(url)
+ return r.text
+
+
+def http_request(method, *args, **kwargs):
+ client = HTTPClient.get_Instance()
+ return getattr(client, method)(*args, **kwargs)
+
+
+def get(url):
+ return http_request('get', url)
+
+
+def post(url, session, data):
+ return http_request('post', url, session, data)
+
+
+def put(url, session, data):
+ return http_request('put', url, session, data)
+
+
+def delete(url, session, data):
+ return http_request('delete', url, session, data)