Step 1: Move vm scripts to the right place
[integration/test.git] / test / csit / libraries / RequestsLibrary.py
index cf66e369c15e2dc5a392d62e2f5cd76363784a07..e120972c6dd8a79eb332798c2214ce41a5743c65 100644 (file)
@@ -3,6 +3,7 @@ import json
 
 from urllib import urlencode
 
+
 import robot
 
 from robot.libraries.BuiltIn import BuiltIn
@@ -20,7 +21,7 @@ class RequestsLibrary(object):
             return data
 
         utf8_data = {}
-        for k,v in data.iteritems():
+        for k, v in data.iteritems():
             utf8_data[k] = unicode(v).encode('utf-8')
         return urlencode(utf8_data)
 
@@ -50,7 +51,7 @@ class RequestsLibrary(object):
         s = session = requests.Session()
         s.headers.update(headers)
         s.auth = auth if auth else s.auth
-        s.proxies = proxies if proxies else  s.proxies
+        s.proxies = proxies if proxies else s.proxies
 
         s.verify = self.builtin.convert_to_boolean(verify)
 
@@ -66,30 +67,27 @@ class RequestsLibrary(object):
         return session
 
     def delete_all_sessions(self):
-        """ Removes all the session objects """
+        """Removes all the session objects"""
 
         self._cache.empty_cache()
 
     def to_json(self, content):
-        """ Convert a string to a JSON object
+        """Convert a string to a JSON object
 
         `content` String content to convert into JSON
         """
         return json.loads(content)
 
-    
     def _get_url(self, session, uri):
-        ''' Helpere method to get the full url
-        '''
+        """Helpere method to get the full url"""
         url = session.url
         if uri:
             slash = '' if uri.startswith('/') else '/'
-            url = "%s%s%s" %(session.url, slash, uri)
+            url = "%s%s%s" % (session.url, slash, uri)
         return url
 
     def get(self, alias, uri, headers=None):
-        """ Send a GET request on the session object found using the
-            given `alias`
+        """Send a GET request on the session object found using the given `alias`
 
         `alias` that will be used to identify the Session object in the cache
 
@@ -108,8 +106,7 @@ class RequestsLibrary(object):
         return resp
 
     def post(self, alias, uri, data={}, headers=None, files={}):
-        """ Send a POST request on the session object found using the
-        given `alias`
+        """Send a POST request on the session object found using the given `alias`
 
         `alias` that will be used to identify the Session object in the cache
 
@@ -128,9 +125,38 @@ class RequestsLibrary(object):
         data = self._utf8_urlencode(data)
 
         resp = session.post(self._get_url(session, uri),
-                       data=data, headers=headers,
-                       files=files,
-                       cookies=self.cookies, timeout=self.timeout)
+                            data=data, headers=headers,
+                            files=files,
+                            cookies=self.cookies, timeout=self.timeout)
+
+        # store the last response object
+        session.last_resp = resp
+        self.builtin.log("Post response: " + resp.content, 'DEBUG')
+        return resp
+
+    def postjson(self, alias, uri, data={}, headers=None, files={}):
+        """Send a POST request on the session object found using the given `alias`
+
+        `alias` that will be used to identify the Session object in the cache
+
+        `uri` to send the GET request to
+
+        `data` a dictionary of key-value pairs that will be urlencoded
+               and sent as POST data
+               or binary data that is sent as the raw body content
+
+        `headers` a dictionary of headers to use with the request
+
+        `files` a dictionary of file names containing file data to POST to the server
+        """
+
+        session = self._cache.switch(alias)
+        data = json.dumps(data)
+
+        resp = session.post(self._get_url(session, uri),
+                            data=data, headers=headers,
+                            files=files,
+                            cookies=self.cookies, timeout=self.timeout)
 
         # store the last response object
         session.last_resp = resp
@@ -138,8 +164,7 @@ class RequestsLibrary(object):
         return resp
 
     def put(self, alias, uri, data=None, headers=None):
-        """ Send a PUT request on the session object found using the
-        given `alias`
+        """Send a PUT request on the session object found using the given `alias`
 
         `alias` that will be used to identify the Session object in the cache
 
@@ -150,12 +175,37 @@ class RequestsLibrary(object):
         """
 
         session = self._cache.switch(alias)
-        #data = json.dumps(self._utf8_urlencode(data))
+        # data = self._utf8_urlencode(data)
         data = json.dumps(data)
 
         resp = session.put(self._get_url(session, uri),
-                    data=data, headers=headers,
-                    cookies=self.cookies, timeout=self.timeout)
+                           data=data, headers=headers,
+                           cookies=self.cookies, timeout=self.timeout)
+
+        self.builtin.log("PUT response: %s DEBUG" % resp.content)
+
+        # store the last response object
+        session.last_resp = resp
+        return resp
+
+    def put_xml(self, alias, uri, data=None, headers=None):
+        """Send a PUT_xml request on the session object found using the given `alias`
+
+        `alias` that will be used to identify the Session object in the cache
+
+        `uri` to send the PUT_xml request to
+
+        `headers` a dictionary of headers to use with the request
+
+        """
+
+        session = self._cache.switch(alias)
+        data = self._utf8_urlencode(data)
+        # data = json.dumps(data)
+
+        resp = session.put(self._get_url(session, uri),
+                           data=data, headers=headers,
+                           cookies=self.cookies, timeout=self.timeout)
 
         self.builtin.log("PUT response: %s DEBUG" % resp.content)
 
@@ -164,8 +214,7 @@ class RequestsLibrary(object):
         return resp
 
     def delete(self, alias, uri, data=(), headers=None):
-        """ Send a DELETE request on the session object found using the
-        given `alias`
+        """Send a DELETE request on the session object found using the given `alias`
 
         `alias` that will be used to identify the Session object in the cache
 
@@ -178,16 +227,15 @@ class RequestsLibrary(object):
         session = self._cache.switch(alias)
         args = "?%s" % urlencode(data) if data else ''
         resp = session.delete("%s%s" % (self._get_url(session, uri), args),
-                            headers=headers, cookies=self.cookies,
-                            timeout=self.timeout)
+                              headers=headers, cookies=self.cookies,
+                              timeout=self.timeout)
 
         # store the last response object
         session.last_resp = resp
         return resp
 
     def head(self, alias, uri, headers=None):
-        """ Send a HEAD request on the session object found using the
-        given `alias`
+        """Send a HEAD request on the session object found using the given `alias`
 
         `alias` that will be used to identify the Session object in the cache
 
@@ -199,7 +247,7 @@ class RequestsLibrary(object):
 
         session = self._cache.switch(alias)
         resp = session.head(self._get_url(session, uri), headers=headers,
-                           cookies=self.cookies, timeout=self.timeout)
+                            cookies=self.cookies, timeout=self.timeout)
 
         # store the last response object
         session.last_resp = resp