summaryrefslogtreecommitdiffstats
path: root/testapi/testapi-client/testapiclient/utils
diff options
context:
space:
mode:
authorSerenaFeng <feng.xiaowei@zte.com.cn>2018-03-14 16:17:34 +0800
committerSerenaFeng <feng.xiaowei@zte.com.cn>2018-03-14 16:17:34 +0800
commitc761a572ae14368ad002a911d07d14c5c5c1b703 (patch)
tree67b7fc1d45540f869f955c63e6a097443e2b97c3 /testapi/testapi-client/testapiclient/utils
parent0e0e2702eeeb824f57599c536ae1534c5b0668f7 (diff)
bugfix: TestAPI Cookie cannot be found
Change-Id: Ibab60aba26e30669dddab74ce61ed00197dc86a8 Signed-off-by: SerenaFeng <feng.xiaowei@zte.com.cn>
Diffstat (limited to 'testapi/testapi-client/testapiclient/utils')
-rw-r--r--testapi/testapi-client/testapiclient/utils/clientmanager.py (renamed from testapi/testapi-client/testapiclient/utils/http_client.py)63
-rw-r--r--testapi/testapi-client/testapiclient/utils/identity.py38
-rw-r--r--testapi/testapi-client/testapiclient/utils/urlparse.py (renamed from testapi/testapi-client/testapiclient/utils/url_parse.py)0
-rw-r--r--testapi/testapi-client/testapiclient/utils/user.py2
4 files changed, 23 insertions, 80 deletions
diff --git a/testapi/testapi-client/testapiclient/utils/http_client.py b/testapi/testapi-client/testapiclient/utils/clientmanager.py
index 359dd14..7e4e630 100644
--- a/testapi/testapi-client/testapiclient/utils/http_client.py
+++ b/testapi/testapi-client/testapiclient/utils/clientmanager.py
@@ -1,32 +1,35 @@
import httplib
import json
+import os
+import urllib
import requests
-from testapiclient.utils import user
-
-class HTTPClient(object):
-
- __instance = None
+class ClientManager(object):
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 __init__(self, cli_options=None):
+ self.cli_options = cli_options
+ self.session = requests.Session()
+
+ def auth(self):
+ hostname = '{}{}{}'.format(os.environ.get('testapi_cas_auth_url'),
+ urllib.quote(os.environ.get('testapi_url')),
+ os.environ.get('testapi_cas_signin_return'))
+ data = {
+ 'name': self.cli_options.u,
+ 'pass': self.cli_options.p,
+ 'form_id': 'user_login'
+ }
+ response = self.session.post(hostname, data)
+ if "login" in response.text:
+ raise Exception('Authenticate failed')
def get(self, url):
- return self._parse_response('Get', requests.get(url))
+ return self._parse_response('Get',
+ self._request('get', url,
+ headers=self.headers))
def post(self, url, data):
return self._parse_response('Create',
@@ -48,7 +51,7 @@ class HTTPClient(object):
headers=self.headers))
def _request(self, method, *args, **kwargs):
- return getattr(user.User.session, method)(*args, **kwargs)
+ return getattr(self.session, method)(*args, **kwargs)
def _raise_failure(self, op, response):
raise Exception('{} failed: {}'.format(op, response.reason))
@@ -58,23 +61,3 @@ class HTTPClient(object):
return response.json() if op != 'Delete' else None
else:
self._raise_failure(op, response)
-
-
-def _request(method, *args, **kwargs):
- return getattr(HTTPClient.get_Instance(), method)(*args, **kwargs)
-
-
-def get(url):
- return _request('get', url)
-
-
-def post(url, data):
- return _request('post', url, data)
-
-
-def put(url, data):
- return _request('put', url, data)
-
-
-def delete(url, data=None):
- return _request('delete', url, data)
diff --git a/testapi/testapi-client/testapiclient/utils/identity.py b/testapi/testapi-client/testapiclient/utils/identity.py
deleted file mode 100644
index a00dd87..0000000
--- a/testapi/testapi-client/testapiclient/utils/identity.py
+++ /dev/null
@@ -1,38 +0,0 @@
-import functools
-import os
-import urllib
-
-import requests
-
-from testapiclient.utils import user
-
-
-def _authenticate(username, password):
- session = requests.Session()
- hostname = '{}{}{}'.format(os.environ.get('testapi_cas_auth_url'),
- urllib.quote(os.environ.get('testapi_url')),
- os.environ.get('testapi_cas_signin_return'))
- data = {
- 'name': username,
- 'pass': password,
- 'form_id': 'user_login'
- }
- response = session.post(hostname, data)
- if "login" not in response.text:
- user.User.session = session
- return response
-
-
-def authenticate(xstep):
- @functools.wraps(xstep)
- def wrapper(self, parsed_args):
- if(user.User.session is None):
- username = parsed_args.u
- password = parsed_args.p
- if(username and password):
- response = _authenticate(username, password)
- if "login" in response.text:
- print "Authentication has failed."
- return
- return xstep(self, parsed_args)
- return wrapper
diff --git a/testapi/testapi-client/testapiclient/utils/url_parse.py b/testapi/testapi-client/testapiclient/utils/urlparse.py
index 9f99a46..9f99a46 100644
--- a/testapi/testapi-client/testapiclient/utils/url_parse.py
+++ b/testapi/testapi-client/testapiclient/utils/urlparse.py
diff --git a/testapi/testapi-client/testapiclient/utils/user.py b/testapi/testapi-client/testapiclient/utils/user.py
deleted file mode 100644
index 7e72163..0000000
--- a/testapi/testapi-client/testapiclient/utils/user.py
+++ /dev/null
@@ -1,2 +0,0 @@
-class User():
- session = None