Repository: MarketSquare/robotframework-requests (language: python)

Issue:
multipart/form-data boundary problem
Hi guys,
I want to use post method but im getting this error: 
`u'message': u'Multipart: Boundary not found', u'code': u'UnexpectedError'`
Here is code:
```${imported_file}=   get file   ${RESOURCES}${/}a.xml
&{directory_file}=    Create Dictionary    file=${imported_file}
${response}=   post request   ${service_name}   /${version}/${uri}  headers=${headers}  files=${directory_file}
set test variable  ${response}
```

Before that i added Content-Type=multipart/form-data in headers

Notice that restlet/postman add this boundary automatically for example in restlet you have:

`multipart/form-data; boundary=----WebKitFormBoundaryA0GEnwiQ2lKg4mal`


Discussion / hints:
did your tests failed without boundary header?
Yes
Have you solved this?
Do we need to calculate boundary by ourselves?
I did a test myself and it's working, have a look at the source of [Post Multipart Test code](https://github.com/MarketSquare/robotframework-requests/blob/de384ec75557137049c071061b485810269520dd/atests/test_post_multipart.robot).
It's something requests library does automatically but you have not to add on your own the Multipart headers. 

Fix patch:
diff --git a/doc/RequestsLibrary.html b/doc/RequestsLibrary.html
index bb5dc1f..b559c96 100644
--- a/doc/RequestsLibrary.html
+++ b/doc/RequestsLibrary.html
@@ -1102,7 +1102,7 @@
 jQuery.extend({highlight:function(e,t,n,r){if(e.nodeType===3){var i=e.data.match(t);if(i){var s=document.createElement(n||"span");s.className=r||"highlight";var o=e.splitText(i.index);o.splitText(i[0].length);var u=o.cloneNode(true);s.appendChild(u);o.parentNode.replaceChild(s,o);return 1}}else if(e.nodeType===1&&e.childNodes&&!/(script|style)/i.test(e.tagName)&&!(e.tagName===n.toUpperCase()&&e.className===r)){for(var a=0;a<e.childNodes.length;a++){a+=jQuery.highlight(e.childNodes[a],t,n,r)}}return 0}});jQuery.fn.unhighlight=function(e){var t={className:"highlight",element:"span"};jQuery.extend(t,e);return this.find(t.element+"."+t.className).each(function(){var e=this.parentNode;e.replaceChild(this.firstChild,this);e.normalize()}).end()};jQuery.fn.highlight=function(e,t){var n={className:"highlight",element:"span",caseSensitive:false,wordsOnly:false};jQuery.extend(n,t);if(e.constructor===String){e=[e]}e=jQuery.grep(e,function(e,t){return e!=""});e=jQuery.map(e,function(e,t){return e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")});if(e.length==0){return this}var r=n.caseSensitive?"":"i";var i="("+e.join("|")+")";if(n.wordsOnly){i="\\b"+i+"\\b"}var s=new RegExp(i,r);return this.each(function(){jQuery.highlight(this,s,n.element,n.className)})}
 </script>
 <script type="text/javascript">
-libdoc = {"name": "RequestsLibrary", "doc": "<p>RequestsLibrary is a Robot Framework library aimed to provide HTTP api testing functionalities by wrapping the well known Python Requests Library.</p>\n<h3 id=\"Table of contents\">Table of contents</h3>\n<ul>\n<li><a href=\"#Usage\" class=\"name\">Usage</a></li>\n<li><a href=\"#Response%20Object\" class=\"name\">Response Object</a></li>\n<li><a href=\"#Keywords\" class=\"name\">Keywords</a></li>\n</ul>\n<h2 id=\"Usage\">Usage</h2>\n<p>The quickest way to start is using the requests keywords and urls see below examples:</p>\n<pre>\n  <b>*</b> Settings <b>*</b>\n  Library               RequestsLibrary\n\n  <b>*</b> Test Cases <b>*</b>\n  Quick Get Request Test\n      ${response}=    GET  <a href=\"https://www.google.com\">https://www.google.com</a>\n\n  Quick Get Request With Parameters Test\n      ${response}=    GET  <a href=\"https://www.google.com/search\">https://www.google.com/search</a>  params=query=ciao  expected_status=200\n\n  Quick Get A JSON Body Test\n      ${response}=    GET  <a href=\"https://jsonplaceholder.typicode.com/posts/1\">https://jsonplaceholder.typicode.com/posts/1</a>\n      Should Be Equal As Strings    1  ${response.json()}[id]\n</pre>\n<p>In order to share the HTTP Session (with the same url, headers, cookies, etc.) among multiple requests, a new connection needs to be prepared with <code>Create Session</code> and passed to the <span class=\"name\">* On Session</span> keywords. You can then execute any <span class=\"name\">* On Session</span> keywords on the shared session by passing the created session alias name, this will increase performances since the connection and ssl handshake is recycled and not repeated for each requests. Below some more advanced examples:</p>\n<pre>\n  <b>*</b> Settings <b>*</b>\n  Library    Collections\n  Library    RequestsLibrary\n\n  Suite Setup    Create Session  jsonplaceholder  <a href=\"https://jsonplaceholder.typicode.com\">https://jsonplaceholder.typicode.com</a>\n\n  <b>*</b> Test Cases <b>*</b>\n\n  Get Request Test\n      Create Session    google  <a href=\"http://www.google.com\">http://www.google.com</a>\n\n      ${resp_google}=   GET On Session  google  /  expected_status=200\n      ${resp_json}=     GET On Session  jsonplaceholder  /posts/1\n\n      Should Be Equal As Strings          ${resp_google.reason}  OK\n      Dictionary Should Contain Value     ${resp_json.json()}  sunt aut facere repellat provident\n\n  Post Request Test\n      &amp;{data}=    Create dictionary  title=Robotframework requests  body=This is a test!  userId=1\n      ${resp}=    POST On Session    jsonplaceholder  /posts  json=${data}  expected_status=anything\n\n      Status Should Be                 201  ${resp}\n      Dictionary Should Contain Key    ${resp.json()}  id\n</pre>\n<h2 id=\"Response Object\">Response Object</h2>\n<p>All the HTTP requests keywords (GET, POST, PUT, etc.) return an extremely useful Response object. The Response object contains a server's response to an HTTP request.</p>\n<p>You can access the different attributes with the dot notation in this way: <code>${response.json()}</code> or <code>${response.text}</code>. Below the list of the most useful attributes:</p>\n<table border=\"1\">\n<tr>\n<th>Attributes</th>\n<th>Explanation</th>\n</tr>\n<tr>\n<td>content</td>\n<td>Content of the response, in bytes.</td>\n</tr>\n<tr>\n<td>cookies</td>\n<td>A CookieJar of Cookies the server sent back.</td>\n</tr>\n<tr>\n<td>elapsed</td>\n<td>The amount of time elapsed between sending the request and the arrival of the response (as a timedelta). This property specifically measures the time taken between sending the first byte of the request and finishing parsing the headers. It is therefore unaffected by consuming the response content or the value of the stream keyword argument.</td>\n</tr>\n<tr>\n<td>encoding</td>\n<td>Encoding to decode with when accessing <code>response.text.</code></td>\n</tr>\n<tr>\n<td>headers</td>\n<td>Case-insensitive Dictionary of Response Headers. For example, <code>headers['content-encoding']</code> will return the value of a `Content-Encoding' response header.</td>\n</tr>\n<tr>\n<td>history</td>\n<td>A list of Response objects from the history of the Request. Any redirect responses will end up here. The list is sorted from the oldest to the most recent request.</td>\n</tr>\n<tr>\n<td>json</td>\n<td>Returns the json-encoded content of a response, if any. Parameters: <code>**kwargs</code> - Optional arguments that json.loads takes. Raises:        ValueError ? If the response body does not contain valid json.</td>\n</tr>\n<tr>\n<td>ok</td>\n<td>Returns True if status_code is less than 400, False if not.</td>\n</tr>\n<tr>\n<td>reason</td>\n<td>Textual reason of responded HTTP Status, e.g. <code>Not Found</code> or <code>OK</code>.</td>\n</tr>\n<tr>\n<td>status_code</td>\n<td>Integer Code of responded HTTP Status, e.g. 404 or 200.</td>\n</tr>\n<tr>\n<td>text</td>\n<td>Content of the response, in unicode. If <code>response.encoding</code> is <code>None</code>, encoding will be guessed using chardet. The encoding of the response content is determined based solely on HTTP headers, following RFC 2616 to the letter. If you can take advantage of non-HTTP knowledge to make a better guess at the encoding, you should set <code>response.encoding</code> appropriately before accessing this property.</td>\n</tr>\n<tr>\n<td>url</td>\n<td>Final URL location of Response.</td>\n</tr>\n</table>", "version": "0.9.1", "generated": "2021-08-17 23:59:23", "type": "LIBRARY", "scope": "GLOBAL", "docFormat": "HTML", "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/__init__.py", "lineno": 19, "tags": [], "inits": [], "keywords": [{"name": "Create Client Cert Session", "args": [{"name": "alias", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "alias"}, {"name": "url", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "url"}, {"name": "headers", "types": [], "defaultValue": "{}", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "headers={}"}, {"name": "cookies", "types": [], "defaultValue": "{}", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "cookies={}"}, {"name": "client_certs", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "client_certs=None"}, {"name": "timeout", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "timeout=None"}, {"name": "proxies", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "proxies=None"}, {"name": "verify", "types": [], "defaultValue": "False", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "verify=False"}, {"name": "debug", "types": [], "defaultValue": "0", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "debug=0"}, {"name": "max_retries", "types": [], "defaultValue": "3", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "max_retries=3"}, {"name": "backoff_factor", "types": [], "defaultValue": "0.1", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "backoff_factor=0.1"}, {"name": "disable_warnings", "types": [], "defaultValue": "0", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "disable_warnings=0"}, {"name": "retry_status_list", "types": [], "defaultValue": "[]", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "retry_status_list=[]"}, {"name": "retry_method_list", "types": [], "defaultValue": "['HEAD', 'TRACE', 'OPTIONS', 'GET', 'DELETE', 'PUT']", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "retry_method_list=['HEAD', 'TRACE', 'OPTIONS', 'GET', 'DELETE', 'PUT']"}], "doc": "<p>Create Session: create a HTTP session to a server</p>\n<p><code>url</code> Base url of the server</p>\n<p><code>alias</code> Robot Framework alias to identify the session</p>\n<p><code>headers</code> Dictionary of default headers</p>\n<p><code>cookies</code> Dictionary of cookies</p>\n<p><code>client_certs</code> ['client certificate', 'client key'] PEM files containing the client key and certificate</p>\n<p><code>timeout</code> Connection timeout</p>\n<p><code>proxies</code> Dictionary mapping protocol or protocol and host to the URL of the proxy (e.g. {'http': 'foo.bar:3128', '<a href=\"http://host.name\">http://host.name</a>': 'foo.bar:4012'})</p>\n<p><code>verify</code> Whether the SSL cert will be verified. A CA_BUNDLE path can also be provided. Defaults to False.</p>\n<p><code>debug</code> Enable http verbosity option more information <a href=\"https://docs.python.org/2/library/httplib.html#httplib.HTTPConnection.set_debuglevel\">https://docs.python.org/2/library/httplib.html#httplib.HTTPConnection.set_debuglevel</a></p>\n<p><code>max_retries</code> Number of maximum retries each connection should attempt. By default it will retry 3 times in case of connection errors only. A 0 value will disable any kind of retries regardless of other retry settings. In case the number of retries is reached a retry exception is raised.</p>\n<p><code>disable_warnings</code> Disable requests warning useful when you have large number of testcases</p>\n<p><code>backoff_factor</code> Introduces a delay time between retries that is longer after each retry. eg. if backoff_factor is set to 0.1 the sleep between attemps will be: 0.0, 0.2, 0.4 More info here: <a href=\"https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html\">https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html</a></p>\n<p><code>retry_method_list</code> List of uppercased HTTP method verbs where retries are allowed. By default retries are allowed only on HTTP requests methods that are considered to be idempotent (multiple requests with the same parameters end with the same state). eg. set to ['POST', 'GET'] to retry only those kind of requests.</p>\n<p><code>retry_status_list</code> List of integer HTTP status codes that, if returned, a retry is attempted. eg. set to [502, 503] to retry requests if those status are returned. Note that max_retries must be greater than 0.</p>", "shortdoc": "Create Session: create a HTTP session to a server", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/SessionKeywords.py", "lineno": 191}, {"name": "Create Custom Session", "args": [{"name": "alias", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "alias"}, {"name": "url", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "url"}, {"name": "auth", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "auth"}, {"name": "headers", "types": [], "defaultValue": "{}", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "headers={}"}, {"name": "cookies", "types": [], "defaultValue": "{}", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "cookies={}"}, {"name": "timeout", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "timeout=None"}, {"name": "proxies", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "proxies=None"}, {"name": "verify", "types": [], "defaultValue": "False", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "verify=False"}, {"name": "debug", "types": [], "defaultValue": "0", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "debug=0"}, {"name": "max_retries", "types": [], "defaultValue": "3", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "max_retries=3"}, {"name": "backoff_factor", "types": [], "defaultValue": "0.1", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "backoff_factor=0.1"}, {"name": "disable_warnings", "types": [], "defaultValue": "0", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "disable_warnings=0"}, {"name": "retry_status_list", "types": [], "defaultValue": "[]", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "retry_status_list=[]"}, {"name": "retry_method_list", "types": [], "defaultValue": "['HEAD', 'TRACE', 'OPTIONS', 'GET', 'DELETE', 'PUT']", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "retry_method_list=['HEAD', 'TRACE', 'OPTIONS', 'GET', 'DELETE', 'PUT']"}], "doc": "<p>Create Session: create a HTTP session to a server</p>\n<p><code>url</code> Base url of the server</p>\n<p><code>alias</code> Robot Framework alias to identify the session</p>\n<p><code>headers</code> Dictionary of default headers</p>\n<p><code>cookies</code> Dictionary of cookies</p>\n<p><code>auth</code> A Custom Authentication object to be passed on to the requests library. <a href=\"http://docs.python-requests.org/en/master/user/advanced/#custom-authentication\">http://docs.python-requests.org/en/master/user/advanced/#custom-authentication</a></p>\n<p><code>timeout</code> Connection timeout</p>\n<p><code>proxies</code> Dictionary mapping protocol or protocol and host to the URL of the proxy (e.g. {'http': 'foo.bar:3128', '<a href=\"http://host.name\">http://host.name</a>': 'foo.bar:4012'})</p>\n<p><code>verify</code> Whether the SSL cert will be verified. A CA_BUNDLE path can also be provided. Defaults to False.</p>\n<p><code>debug</code> Enable http verbosity option more information <a href=\"https://docs.python.org/2/library/httplib.html#httplib.HTTPConnection.set_debuglevel\">https://docs.python.org/2/library/httplib.html#httplib.HTTPConnection.set_debuglevel</a></p>\n<p><code>max_retries</code> Number of maximum retries each connection should attempt. By default it will retry 3 times in case of connection errors only. A 0 value will disable any kind of retries regardless of other retry settings. In case the number of retries is reached a retry exception is raised.</p>\n<p><code>disable_warnings</code> Disable requests warning useful when you have large number of testcases</p>\n<p><code>backoff_factor</code> Introduces a delay time between retries that is longer after each retry. eg. if backoff_factor is set to 0.1 the sleep between attemps will be: 0.0, 0.2, 0.4 More info here: <a href=\"https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html\">https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html</a></p>\n<p><code>retry_method_list</code> List of uppercased HTTP method verbs where retries are allowed. By default retries are allowed only on HTTP requests methods that are considered to be idempotent (multiple requests with the same parameters end with the same state). eg. set to ['POST', 'GET'] to retry only those kind of requests.</p>\n<p><code>retry_status_list</code> List of integer HTTP status codes that, if returned, a retry is attempted. eg. set to [502, 503] to retry requests if those status are returned. Note that max_retries must be greater than 0.</p>", "shortdoc": "Create Session: create a HTTP session to a server", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/SessionKeywords.py", "lineno": 277}, {"name": "Create Digest Session", "args": [{"name": "alias", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "alias"}, {"name": "url", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "url"}, {"name": "auth", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "auth"}, {"name": "headers", "types": [], "defaultValue": "{}", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "headers={}"}, {"name": "cookies", "types": [], "defaultValue": "{}", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "cookies={}"}, {"name": "timeout", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "timeout=None"}, {"name": "proxies", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "proxies=None"}, {"name": "verify", "types": [], "defaultValue": "False", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "verify=False"}, {"name": "debug", "types": [], "defaultValue": "0", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "debug=0"}, {"name": "max_retries", "types": [], "defaultValue": "3", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "max_retries=3"}, {"name": "backoff_factor", "types": [], "defaultValue": "0.1", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "backoff_factor=0.1"}, {"name": "disable_warnings", "types": [], "defaultValue": "0", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "disable_warnings=0"}, {"name": "retry_status_list", "types": [], "defaultValue": "[]", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "retry_status_list=[]"}, {"name": "retry_method_list", "types": [], "defaultValue": "['HEAD', 'TRACE', 'OPTIONS', 'GET', 'DELETE', 'PUT']", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "retry_method_list=['HEAD', 'TRACE', 'OPTIONS', 'GET', 'DELETE', 'PUT']"}], "doc": "<p>Create Session: create a HTTP session to a server</p>\n<p><code>url</code> Base url of the server</p>\n<p><code>alias</code> Robot Framework alias to identify the session</p>\n<p><code>headers</code> Dictionary of default headers</p>\n<p><code>cookies</code> Dictionary of cookies</p>\n<p><code>auth</code> ['DOMAIN', 'username', 'password'] for NTLM Authentication</p>\n<p><code>timeout</code> Connection timeout</p>\n<p><code>proxies</code> Dictionary mapping protocol or protocol and host to the URL of the proxy (e.g. {'http': 'foo.bar:3128', '<a href=\"http://host.name\">http://host.name</a>': 'foo.bar:4012'})</p>\n<p><code>verify</code> Whether the SSL cert will be verified. A CA_BUNDLE path can also be provided. Defaults to False.</p>\n<p><code>debug</code> Enable http verbosity option more information <a href=\"https://docs.python.org/2/library/httplib.html#httplib.HTTPConnection.set_debuglevel\">https://docs.python.org/2/library/httplib.html#httplib.HTTPConnection.set_debuglevel</a></p>\n<p><code>max_retries</code> Number of maximum retries each connection should attempt. By default it will retry 3 times in case of connection errors only. A 0 value will disable any kind of retries regardless of other retry settings. In case the number of retries is reached a retry exception is raised.</p>\n<p><code>disable_warnings</code> Disable requests warning useful when you have large number of testcases</p>\n<p><code>backoff_factor</code> Introduces a delay time between retries that is longer after each retry. eg. if backoff_factor is set to 0.1 the sleep between attemps will be: 0.0, 0.2, 0.4 More info here: <a href=\"https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html\">https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html</a></p>\n<p><code>retry_method_list</code> List of uppercased HTTP method verbs where retries are allowed. By default retries are allowed only on HTTP requests methods that are considered to be idempotent (multiple requests with the same parameters end with the same state). eg. set to ['POST', 'GET'] to retry only those kind of requests.</p>\n<p><code>retry_status_list</code> List of integer HTTP status codes that, if returned, a retry is attempted. eg. set to [502, 503] to retry requests if those status are returned. Note that max_retries must be greater than 0.</p>", "shortdoc": "Create Session: create a HTTP session to a server", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/SessionKeywords.py", "lineno": 361}, {"name": "Create Ntlm Session", "args": [{"name": "alias", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "alias"}, {"name": "url", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "url"}, {"name": "auth", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "auth"}, {"name": "headers", "types": [], "defaultValue": "{}", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "headers={}"}, {"name": "cookies", "types": [], "defaultValue": "{}", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "cookies={}"}, {"name": "timeout", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "timeout=None"}, {"name": "proxies", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "proxies=None"}, {"name": "verify", "types": [], "defaultValue": "False", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "verify=False"}, {"name": "debug", "types": [], "defaultValue": "0", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "debug=0"}, {"name": "max_retries", "types": [], "defaultValue": "3", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "max_retries=3"}, {"name": "backoff_factor", "types": [], "defaultValue": "0.1", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "backoff_factor=0.1"}, {"name": "disable_warnings", "types": [], "defaultValue": "0", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "disable_warnings=0"}, {"name": "retry_status_list", "types": [], "defaultValue": "[]", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "retry_status_list=[]"}, {"name": "retry_method_list", "types": [], "defaultValue": "['HEAD', 'TRACE', 'OPTIONS', 'GET', 'DELETE', 'PUT']", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "retry_method_list=['HEAD', 'TRACE', 'OPTIONS', 'GET', 'DELETE', 'PUT']"}], "doc": "<p>Create Session: create a HTTP session to a server</p>\n<p><code>url</code> Base url of the server</p>\n<p><code>alias</code> Robot Framework alias to identify the session</p>\n<p><code>headers</code> Dictionary of default headers</p>\n<p><code>cookies</code> Dictionary of cookies</p>\n<p><code>auth</code> ['DOMAIN', 'username', 'password'] for NTLM Authentication</p>\n<p><code>timeout</code> Connection timeout</p>\n<p><code>proxies</code> Dictionary mapping protocol or protocol and host to the URL of the proxy (e.g. {'http': 'foo.bar:3128', '<a href=\"http://host.name\">http://host.name</a>': 'foo.bar:4012'})</p>\n<p><code>verify</code> Whether the SSL cert will be verified. A CA_BUNDLE path can also be provided. Defaults to False.</p>\n<p><code>debug</code> Enable http verbosity option more information <a href=\"https://docs.python.org/2/library/httplib.html#httplib.HTTPConnection.set_debuglevel\">https://docs.python.org/2/library/httplib.html#httplib.HTTPConnection.set_debuglevel</a></p>\n<p><code>max_retries</code> Number of maximum retries each connection should attempt. By default it will retry 3 times in case of connection errors only. A 0 value will disable any kind of retries regardless of other retry settings. In case the number of retries is reached a retry exception is raised.</p>\n<p><code>disable_warnings</code> Disable requests warning useful when you have large number of testcases</p>\n<p><code>backoff_factor</code> Introduces a delay time between retries that is longer after each retry. eg. if backoff_factor is set to 0.1 the sleep between attemps will be: 0.0, 0.2, 0.4 More info here: <a href=\"https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html\">https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html</a></p>\n<p><code>retry_method_list</code> List of uppercased HTTP method verbs where retries are allowed. By default retries are allowed only on HTTP requests methods that are considered to be idempotent (multiple requests with the same parameters end with the same state). eg. set to ['POST', 'GET'] to retry only those kind of requests.</p>\n<p><code>retry_status_list</code> List of integer HTTP status codes that, if returned, a retry is attempted. eg. set to [502, 503] to retry requests if those status are returned. Note that max_retries must be greater than 0.</p>", "shortdoc": "Create Session: create a HTTP session to a server", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/SessionKeywords.py", "lineno": 439}, {"name": "Create Session", "args": [{"name": "alias", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "alias"}, {"name": "url", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "url"}, {"name": "headers", "types": [], "defaultValue": "{}", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "headers={}"}, {"name": "cookies", "types": [], "defaultValue": "{}", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "cookies={}"}, {"name": "auth", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "auth=None"}, {"name": "timeout", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "timeout=None"}, {"name": "proxies", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "proxies=None"}, {"name": "verify", "types": [], "defaultValue": "False", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "verify=False"}, {"name": "debug", "types": [], "defaultValue": "0", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "debug=0"}, {"name": "max_retries", "types": [], "defaultValue": "3", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "max_retries=3"}, {"name": "backoff_factor", "types": [], "defaultValue": "0.1", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "backoff_factor=0.1"}, {"name": "disable_warnings", "types": [], "defaultValue": "0", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "disable_warnings=0"}, {"name": "retry_status_list", "types": [], "defaultValue": "[]", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "retry_status_list=[]"}, {"name": "retry_method_list", "types": [], "defaultValue": "['HEAD', 'TRACE', 'OPTIONS', 'GET', 'DELETE', 'PUT']", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "retry_method_list=['HEAD', 'TRACE', 'OPTIONS', 'GET', 'DELETE', 'PUT']"}], "doc": "<p>Create Session: create a HTTP session to a server</p>\n<p><code>alias</code> Robot Framework alias to identify the session</p>\n<p><code>url</code> Base url of the server</p>\n<p><code>headers</code> Dictionary of default headers</p>\n<p><code>cookies</code> Dictionary of cookies</p>\n<p><code>auth</code> List of username &amp; password for HTTP Basic Auth</p>\n<p><code>timeout</code> Connection timeout</p>\n<p><code>proxies</code> Dictionary mapping protocol or protocol and host to the URL of the proxy (e.g. {'http': 'foo.bar:3128', '<a href=\"http://host.name\">http://host.name</a>': 'foo.bar:4012'})</p>\n<p><code>verify</code> Whether the SSL cert will be verified. A CA_BUNDLE path can also be provided.</p>\n<p><code>debug</code> Enable http verbosity option more information <a href=\"https://docs.python.org/2/library/httplib.html#httplib.HTTPConnection.set_debuglevel\">https://docs.python.org/2/library/httplib.html#httplib.HTTPConnection.set_debuglevel</a></p>\n<p><code>max_retries</code> Number of maximum retries each connection should attempt. By default it will retry 3 times in case of connection errors only. A 0 value will disable any kind of retries regardless of other retry settings. In case the number of retries is reached a retry exception is raised.</p>\n<p><code>disable_warnings</code> Disable requests warning useful when you have large number of testcases</p>\n<p><code>backoff_factor</code> Introduces a delay time between retries that is longer after each retry. eg. if backoff_factor is set to 0.1 the sleep between attemps will be: 0.0, 0.2, 0.4 More info here: <a href=\"https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html\">https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html</a></p>\n<p><code>retry_method_list</code> List of uppercased HTTP method verbs where retries are allowed. By default retries are allowed only on HTTP requests methods that are considered to be idempotent (multiple requests with the same parameters end with the same state). eg. set to ['POST', 'GET'] to retry only those kind of requests.</p>\n<p><code>retry_status_list</code> List of integer HTTP status codes that, if returned, a retry is attempted. eg. set to [502, 503] to retry requests if those status are returned. Note that max_retries must be greater than 0.</p>", "shortdoc": "Create Session: create a HTTP session to a server", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/SessionKeywords.py", "lineno": 109}, {"name": "DELETE", "args": [{"name": "url", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "url"}, {"name": "expected_status", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "expected_status=None"}, {"name": "msg", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "msg=None"}, {"name": "kwargs", "types": [], "defaultValue": null, "kind": "VAR_NAMED", "required": false, "repr": "**kwargs"}], "doc": "<p>Sends a DELETE request.</p>\n<p>The endpoint used to send the request is the <code>url</code> parameter.</p>\n<p>By default this keyword fails if a status code with error values is returned in the response, this behavior can be modified using the <code>expected_status</code> and <code>msg</code> parameters, read more about it in <a href=\"#Status%20Should%20Be\" class=\"name\">Status Should Be</a> keyword documentation. In order to disable this implicit assert mechanism you can pass as <code>expected_status</code> the values <code>any</code> or <code>anything</code>.</p>\n<p>Other optional requests arguments can be passed using <code>**kwargs</code> see the <a href=\"#GET\" class=\"name\">GET</a> keyword for the complete list.</p>", "shortdoc": "Sends a DELETE request.", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/RequestsKeywords.py", "lineno": 299}, {"name": "Delete All Sessions", "args": [], "doc": "<p>Removes all the session objects</p>", "shortdoc": "Removes all the session objects", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/SessionKeywords.py", "lineno": 544}, {"name": "DELETE On Session", "args": [{"name": "alias", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "alias"}, {"name": "url", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "url"}, {"name": "expected_status", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "expected_status=None"}, {"name": "msg", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "msg=None"}, {"name": "kwargs", "types": [], "defaultValue": null, "kind": "VAR_NAMED", "required": false, "repr": "**kwargs"}], "doc": "<p>Sends a DELETE request on a previously created HTTP Session.</p>\n<p>Session will be identified using the <code>alias</code> name. The endpoint used to send the request is the <code>url</code> parameter.</p>\n<p>By default this keyword fails if a status code with error values is returned in the response, this behavior can be modified using the <code>expected_status</code> and <code>msg</code> parameters, read more about it in <a href=\"#Status%20Should%20Be\" class=\"name\">Status Should Be</a> keyword documentation. In order to disable this implicit assert mechanism you can pass as <code>expected_status</code> the values <code>any</code> or <code>anything</code>.</p>\n<p>Other optional requests arguments can be passed using <code>**kwargs</code> see the <a href=\"#GET\" class=\"name\">GET</a> keyword for the complete list.</p>", "shortdoc": "Sends a DELETE request on a previously created HTTP Session.", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/RequestsOnSessionKeywords.py", "lineno": 120}, {"name": "Delete Request", "args": [{"name": "alias", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "alias"}, {"name": "uri", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "uri"}, {"name": "data", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "data=None"}, {"name": "json", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "json=None"}, {"name": "params", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "params=None"}, {"name": "headers", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "headers=None"}, {"name": "allow_redirects", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "allow_redirects=None"}, {"name": "timeout", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "timeout=None"}], "doc": "<p><b>DEPRECATED</b> Please use <a href=\"#DELETE%20On%20Session\" class=\"name\">DELETE On Session</a> instead.</p>\n<p>Send a DELETE request on the session object found using the given <span class=\"name\">alias</span></p>\n<p><code>alias</code> that will be used to identify the Session object in the cache</p>\n<p><code>uri</code> to send the DELETE request to</p>\n<p><code>json</code> a value that will be json encoded and sent as request data if data is not specified</p>\n<p><code>headers</code> a dictionary of headers to use with the request</p>\n<p><code>allow_redirects</code> Boolean. Set to True if POST/PUT/DELETE redirect following is allowed.</p>\n<p><code>timeout</code> connection timeout</p>", "shortdoc": "*DEPRECATED* Please use `DELETE On Session` instead.", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/DeprecatedKeywords.py", "lineno": 261}, {"name": "GET", "args": [{"name": "url", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "url"}, {"name": "params", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "params=None"}, {"name": "expected_status", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "expected_status=None"}, {"name": "msg", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "msg=None"}, {"name": "kwargs", "types": [], "defaultValue": null, "kind": "VAR_NAMED", "required": false, "repr": "**kwargs"}], "doc": "<p>Sends a GET request.</p>\n<p>The endpoint used to retrieve the resource is the <code>url</code>, while query string parameters can be passed as string, dictionary (or list of tuples or bytes) through the <code>params</code>.</p>\n<p>By default this keyword fails if a status code with error values is returned in the response, this behavior can be modified using the <code>expected_status</code> and <code>msg</code> parameters, read more about it in <a href=\"#Status%20Should%20Be\" class=\"name\">Status Should Be</a> keyword documentation. In order to disable this implicit assert mechanism you can pass as <code>expected_status</code> the values <code>any</code> or <code>anything</code>.</p>\n<p>Other optional requests arguments can be passed using <code>**kwargs</code> here is a list:</p>\n<table border=\"1\">\n<tr>\n<td><code>data</code></td>\n<td>Dictionary, list of tuples, bytes, or file-like object to send in the body of the request.</td>\n</tr>\n<tr>\n<td><code>json</code></td>\n<td>A JSON serializable Python object to send in the body of the request.</td>\n</tr>\n<tr>\n<td><code>headers</code></td>\n<td>Dictionary of HTTP Headers to send with the request.</td>\n</tr>\n<tr>\n<td><code>cookies</code></td>\n<td>Dict or CookieJar object to send with the request.</td>\n</tr>\n<tr>\n<td><code>files</code></td>\n<td>Dictionary of file-like-objects (or <code>{'name': file-tuple}</code>) for multipart encoding upload.</td>\n</tr>\n<tr>\n<td><code>file-tuple</code></td>\n<td>can be a 2-tuple <code>('filename', fileobj)</code>, 3-tuple <code>('filename', fileobj, 'content_type')</code> or a 4-tuple <code>('filename', fileobj, 'content_type', custom_headers)</code>, where <code>'content-type'</code> is a string defining the content type of the given file and <code>custom_headers</code> a dict-like object containing additional headers to add for the file.</td>\n</tr>\n<tr>\n<td><code>auth</code></td>\n<td>Auth tuple to enable Basic/Digest/Custom HTTP Auth.</td>\n</tr>\n<tr>\n<td><code>timeout</code></td>\n<td>How many seconds to wait for the server to send data before giving up, as a float, or a <code>(connect timeout, read timeout)</code> tuple.</td>\n</tr>\n<tr>\n<td><code>allow_redirects</code></td>\n<td>Boolean. Enable/disable GET/OPTIONS/POST/PUT/PATCH/DELETE/HEAD redirection. Defaults to <code>True</code>.</td>\n</tr>\n<tr>\n<td><code>proxies</code></td>\n<td>Dictionary mapping protocol or protocol and host to the URL of the proxy (e.g. {'http': 'foo.bar:3128', '<a href=\"http://host.name\">http://host.name</a>': 'foo.bar:4012'})</td>\n</tr>\n<tr>\n<td><code>verify</code></td>\n<td>Either a boolean, in which case it controls whether we verify the server's TLS certificate, or a string, in which case it must be a path to a CA bundle to use. Defaults to <code>True</code>. Warning: if a session has been created with <code>verify=False</code> any other requests will not verify the SSL certificate.</td>\n</tr>\n<tr>\n<td><code>stream</code></td>\n<td>if <code>False</code>, the response content will be immediately downloaded.</td>\n</tr>\n<tr>\n<td><code>cert</code></td>\n<td>if String, path to ssl client cert file (.pem). If Tuple, ('cert', 'key') pair.</td>\n</tr>\n</table>\n<p>For more updated and complete information verify the official Requests api documentation: <a href=\"https://requests.readthedocs.io/en/latest/api/\">https://requests.readthedocs.io/en/latest/api/</a></p>", "shortdoc": "Sends a GET request.", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/RequestsKeywords.py", "lineno": 155}, {"name": "Get File For Streaming Upload", "args": [{"name": "path", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "path"}], "doc": "<p>Opens and returns a file descriptor of a specified file to be passed as <code>data</code> parameter to other requests keywords.</p>\n<p>This allows streaming upload of large files without reading them into memory.</p>\n<p>File descriptor is binary mode and read only. Requests keywords will automatically close the file, if used outside this library it's up to the caller to close it.</p>", "shortdoc": "Opens and returns a file descriptor of a specified file to be passed as ``data`` parameter to other requests keywords.", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/RequestsKeywords.py", "lineno": 142}, {"name": "GET On Session", "args": [{"name": "alias", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "alias"}, {"name": "url", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "url"}, {"name": "params", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "params=None"}, {"name": "expected_status", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "expected_status=None"}, {"name": "msg", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "msg=None"}, {"name": "kwargs", "types": [], "defaultValue": null, "kind": "VAR_NAMED", "required": false, "repr": "**kwargs"}], "doc": "<p>Sends a GET request on a previously created HTTP Session.</p>\n<p>Session will be identified using the <code>alias</code> name. The endpoint used to retrieve the resource is the <code>url</code>, while query string parameters can be passed as string, dictionary (or list of tuples or bytes) through the <code>params</code>.</p>\n<p>By default this keyword fails if a status code with error values is returned in the response, this behavior can be modified using the <code>expected_status</code> and <code>msg</code> parameters, read more about it in <a href=\"#Status%20Should%20Be\" class=\"name\">Status Should Be</a> keyword documentation. In order to disable this implicit assert mechanism you can pass as <code>expected_status</code> the values <code>any</code> or <code>anything</code>.</p>\n<p>Other optional requests arguments can be passed using <code>**kwargs</code> see the <a href=\"#GET\" class=\"name\">GET</a> keyword for the complete list.</p>", "shortdoc": "Sends a GET request on a previously created HTTP Session.", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/RequestsOnSessionKeywords.py", "lineno": 10}, {"name": "Get Request", "args": [{"name": "alias", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "alias"}, {"name": "uri", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "uri"}, {"name": "headers", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "headers=None"}, {"name": "data", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "data=None"}, {"name": "json", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "json=None"}, {"name": "params", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "params=None"}, {"name": "allow_redirects", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "allow_redirects=None"}, {"name": "timeout", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "timeout=None"}], "doc": "<p><b>DEPRECATED</b> Please use <a href=\"#GET%20On%20Session\" class=\"name\">GET On Session</a> instead.</p>\n<p>Send a GET request on the session object found using the given <span class=\"name\">alias</span></p>\n<p><code>alias</code> that will be used to identify the Session object in the cache</p>\n<p><code>uri</code> to send the GET request to</p>\n<p><code>params</code> url parameters to append to the uri</p>\n<p><code>headers</code> a dictionary of headers to use with the request</p>\n<p><code>data</code> a dictionary of key-value pairs that will be urlencoded and sent as GET data or binary data that is sent as the raw body content</p>\n<p><code>json</code> a value that will be json encoded and sent as GET data if data is not specified</p>\n<p><code>allow_redirects</code> Boolean. Set to True if POST/PUT/DELETE redirect following is allowed.</p>\n<p><code>timeout</code> connection timeout</p>", "shortdoc": "*DEPRECATED* Please use `GET On Session` instead.", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/DeprecatedKeywords.py", "lineno": 36}, {"name": "HEAD", "args": [{"name": "url", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "url"}, {"name": "expected_status", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "expected_status=None"}, {"name": "msg", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "msg=None"}, {"name": "kwargs", "types": [], "defaultValue": null, "kind": "VAR_NAMED", "required": false, "repr": "**kwargs"}], "doc": "<p>Sends a HEAD request.</p>\n<p>The endpoint used to retrieve the HTTP headers is the <code>url</code>.</p>\n<p><code>allow_redirects</code> parameter is not provided, it will be set to <span class=\"name\">False</span> (as opposed to the default behavior).</p>\n<p>By default this keyword fails if a status code with error values is returned in the response, this behavior can be modified using the <code>expected_status</code> and <code>msg</code> parameters, read more about it in <a href=\"#Status%20Should%20Be\" class=\"name\">Status Should Be</a> keyword documentation. In order to disable this implicit assert mechanism you can pass as <code>expected_status</code> the values <code>any</code> or <code>anything</code>.</p>\n<p>Other optional requests arguments can be passed using <code>**kwargs</code> see the <a href=\"#GET\" class=\"name\">GET</a> keyword for the complete list.</p>", "shortdoc": "Sends a HEAD request.", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/RequestsKeywords.py", "lineno": 249}, {"name": "HEAD On Session", "args": [{"name": "alias", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "alias"}, {"name": "url", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "url"}, {"name": "expected_status", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "expected_status=None"}, {"name": "msg", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "msg=None"}, {"name": "kwargs", "types": [], "defaultValue": null, "kind": "VAR_NAMED", "required": false, "repr": "**kwargs"}], "doc": "<p>Sends a HEAD request on a previously created HTTP Session.</p>\n<p>Session will be identified using the <code>alias</code> name. The endpoint used to retrieve the HTTP headers is the <code>url</code>.</p>\n<p><code>allow_redirects</code> parameter is not provided, it will be set to <span class=\"name\">False</span> (as opposed to the default behavior).</p>\n<p>By default this keyword fails if a status code with error values is returned in the response, this behavior can be modified using the <code>expected_status</code> and <code>msg</code> parameters, read more about it in <a href=\"#Status%20Should%20Be\" class=\"name\">Status Should Be</a> keyword documentation. In order to disable this implicit assert mechanism you can pass as <code>expected_status</code> the values <code>any</code> or <code>anything</code>.</p>\n<p>Other optional requests arguments can be passed using <code>**kwargs</code> see the <a href=\"#GET\" class=\"name\">GET</a> keyword for the complete list.</p>", "shortdoc": "Sends a HEAD request on a previously created HTTP Session.", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/RequestsOnSessionKeywords.py", "lineno": 143}, {"name": "Head Request", "args": [{"name": "alias", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "alias"}, {"name": "uri", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "uri"}, {"name": "headers", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "headers=None"}, {"name": "allow_redirects", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "allow_redirects=None"}, {"name": "timeout", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "timeout=None"}], "doc": "<p><b>DEPRECATED</b> Please use <a href=\"#HEAD%20On%20Session\" class=\"name\">HEAD On Session</a> instead.</p>\n<p>Send a HEAD request on the session object found using the given <span class=\"name\">alias</span></p>\n<p><code>alias</code> that will be used to identify the Session object in the cache</p>\n<p><code>uri</code> to send the HEAD request to</p>\n<p><code>allow_redirects</code> Boolean. Set to True if POST/PUT/DELETE redirect following is allowed.</p>\n<p><code>headers</code> a dictionary of headers to use with the request</p>\n<p><code>timeout</code> connection timeout</p>", "shortdoc": "*DEPRECATED* Please use `HEAD On Session` instead.", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/DeprecatedKeywords.py", "lineno": 308}, {"name": "OPTIONS", "args": [{"name": "url", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "url"}, {"name": "expected_status", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "expected_status=None"}, {"name": "msg", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "msg=None"}, {"name": "kwargs", "types": [], "defaultValue": null, "kind": "VAR_NAMED", "required": false, "repr": "**kwargs"}], "doc": "<p>Sends a OPTIONS request.</p>\n<p>The endpoint used to retrieve the resource is the <code>url</code>.</p>\n<p>By default this keyword fails if a status code with error values is returned in the response, this behavior can be modified using the <code>expected_status</code> and <code>msg</code> parameters, read more about it in <a href=\"#Status%20Should%20Be\" class=\"name\">Status Should Be</a> keyword documentation. In order to disable this implicit assert mechanism you can pass as <code>expected_status</code> the values <code>any</code> or <code>anything</code>.</p>\n<p>Other optional requests arguments can be passed using <code>**kwargs</code> see the <a href=\"#GET\" class=\"name\">GET</a> keyword for the complete list.</p>", "shortdoc": "Sends a OPTIONS request.", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/RequestsKeywords.py", "lineno": 320}, {"name": "OPTIONS On Session", "args": [{"name": "alias", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "alias"}, {"name": "url", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "url"}, {"name": "expected_status", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "expected_status=None"}, {"name": "msg", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "msg=None"}, {"name": "kwargs", "types": [], "defaultValue": null, "kind": "VAR_NAMED", "required": false, "repr": "**kwargs"}], "doc": "<p>Sends a OPTIONS request on a previously created HTTP Session.</p>\n<p>Session will be identified using the <code>alias</code> name. The endpoint used to retrieve the resource is the <code>url</code>.</p>\n<p>By default this keyword fails if a status code with error values is returned in the response, this behavior can be modified using the <code>expected_status</code> and <code>msg</code> parameters, read more about it in <a href=\"#Status%20Should%20Be\" class=\"name\">Status Should Be</a> keyword documentation. In order to disable this implicit assert mechanism you can pass as <code>expected_status</code> the values <code>any</code> or <code>anything</code>.</p>\n<p>Other optional requests arguments can be passed using <code>**kwargs</code> see the <a href=\"#GET\" class=\"name\">GET</a> keyword for the complete list.</p>", "shortdoc": "Sends a OPTIONS request on a previously created HTTP Session.", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/RequestsOnSessionKeywords.py", "lineno": 169}, {"name": "Options Request", "args": [{"name": "alias", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "alias"}, {"name": "uri", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "uri"}, {"name": "headers", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "headers=None"}, {"name": "allow_redirects", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "allow_redirects=None"}, {"name": "timeout", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "timeout=None"}], "doc": "<p><b>DEPRECATED</b> Please use <a href=\"#OPTIONS%20On%20Session\" class=\"name\">OPTIONS On Session</a> instead.</p>\n<p>Send an OPTIONS request on the session object found using the given <span class=\"name\">alias</span></p>\n<p><code>alias</code> that will be used to identify the Session object in the cache</p>\n<p><code>uri</code> to send the OPTIONS request to</p>\n<p><code>allow_redirects</code> Boolean. Set to True if POST/PUT/DELETE redirect following is allowed.</p>\n<p><code>headers</code> a dictionary of headers to use with the request</p>\n<p><code>timeout</code> connection timeout</p>", "shortdoc": "*DEPRECATED* Please use `OPTIONS On Session` instead.", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/DeprecatedKeywords.py", "lineno": 344}, {"name": "PATCH", "args": [{"name": "url", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "url"}, {"name": "data", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "data=None"}, {"name": "json", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "json=None"}, {"name": "expected_status", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "expected_status=None"}, {"name": "msg", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "msg=None"}, {"name": "kwargs", "types": [], "defaultValue": null, "kind": "VAR_NAMED", "required": false, "repr": "**kwargs"}], "doc": "<p>Sends a PUT request.</p>\n<p>The endpoint used to send the request is the <code>url</code> parameter, while its body can be passed using <code>data</code> or <code>json</code> parameters.</p>\n<p><code>data</code> can be a dictionary, list of tuples, bytes, or file-like object. If you want to pass a json body pass a dictionary as <code>json</code> parameter.</p>\n<p>By default this keyword fails if a status code with error values is returned in the response, this behavior can be modified using the <code>expected_status</code> and <code>msg</code> parameters, read more about it in <a href=\"#Status%20Should%20Be\" class=\"name\">Status Should Be</a> keyword documentation. In order to disable this implicit assert mechanism you can pass as <code>expected_status</code> the values <code>any</code> or <code>anything</code>.</p>\n<p>Other optional requests arguments can be passed using <code>**kwargs</code> see the <a href=\"#GET\" class=\"name\">GET</a> keyword for the complete list.</p>", "shortdoc": "Sends a PUT request.", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/RequestsKeywords.py", "lineno": 273}, {"name": "PATCH On Session", "args": [{"name": "alias", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "alias"}, {"name": "url", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "url"}, {"name": "data", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "data=None"}, {"name": "json", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "json=None"}, {"name": "expected_status", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "expected_status=None"}, {"name": "msg", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "msg=None"}, {"name": "kwargs", "types": [], "defaultValue": null, "kind": "VAR_NAMED", "required": false, "repr": "**kwargs"}], "doc": "<p>Sends a PATCH request on a previously created HTTP Session.</p>\n<p>Session will be identified using the <code>alias</code> name. The endpoint used to send the request is the <code>url</code> parameter, while its body can be passed using <code>data</code> or <code>json</code> parameters.</p>\n<p><code>data</code> can be a dictionary, list of tuples, bytes, or file-like object. If you want to pass a json body pass a dictionary as <code>json</code> parameter.</p>\n<p>By default this keyword fails if a status code with error values is returned in the response, this behavior can be modified using the <code>expected_status</code> and <code>msg</code> parameters, read more about it in <a href=\"#Status%20Should%20Be\" class=\"name\">Status Should Be</a> keyword documentation. In order to disable this implicit assert mechanism you can pass as <code>expected_status</code> the values <code>any</code> or <code>anything</code>.</p>\n<p>Other optional requests arguments can be passed using <code>**kwargs</code> see the <a href=\"#GET\" class=\"name\">GET</a> keyword for the complete list.</p>", "shortdoc": "Sends a PATCH request on a previously created HTTP Session.", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/RequestsOnSessionKeywords.py", "lineno": 64}, {"name": "Patch Request", "args": [{"name": "alias", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "alias"}, {"name": "uri", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "uri"}, {"name": "data", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "data=None"}, {"name": "json", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "json=None"}, {"name": "params", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "params=None"}, {"name": "headers", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "headers=None"}, {"name": "files", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "files=None"}, {"name": "allow_redirects", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "allow_redirects=None"}, {"name": "timeout", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "timeout=None"}], "doc": "<p><b>DEPRECATED</b> Please use <a href=\"#PATCH%20On%20Session\" class=\"name\">PATCH On Session</a> instead.</p>\n<p>Send a PATCH request on the session object found using the given <span class=\"name\">alias</span></p>\n<p><code>alias</code> that will be used to identify the Session object in the cache</p>\n<p><code>uri</code> to send the PATCH request to</p>\n<p><code>data</code> a dictionary of key-value pairs that will be urlencoded and sent as PATCH data or binary data that is sent as the raw body content or file descriptor retrieved by Get File For Streaming Upload</p>\n<p><code>json</code> a value that will be json encoded and sent as PATCH data if data is not specified</p>\n<p><code>headers</code> a dictionary of headers to use with the request</p>\n<p><code>files</code> a dictionary of file names containing file data to PATCH to the server</p>\n<p><code>allow_redirects</code> Boolean. Set to True if POST/PUT/DELETE redirect following is allowed.</p>\n<p><code>params</code> url parameters to append to the uri</p>\n<p><code>timeout</code> connection timeout</p>", "shortdoc": "*DEPRECATED* Please use `PATCH On Session` instead.", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/DeprecatedKeywords.py", "lineno": 147}, {"name": "POST", "args": [{"name": "url", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "url"}, {"name": "data", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "data=None"}, {"name": "json", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "json=None"}, {"name": "expected_status", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "expected_status=None"}, {"name": "msg", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "msg=None"}, {"name": "kwargs", "types": [], "defaultValue": null, "kind": "VAR_NAMED", "required": false, "repr": "**kwargs"}], "doc": "<p>Sends a POST request.</p>\n<p>The endpoint used to send the request is the <code>url</code> parameter, while its body can be passed using <code>data</code> or <code>json</code> parameters.</p>\n<p><code>data</code> can be a dictionary, list of tuples, bytes, or file-like object. If you want to pass a json body pass a dictionary as <code>json</code> parameter.</p>\n<p>By default this keyword fails if a status code with error values is returned in the response, this behavior can be modified using the <code>expected_status</code> and <code>msg</code> parameters, read more about it in <a href=\"#Status%20Should%20Be\" class=\"name\">Status Should Be</a> keyword documentation. In order to disable this implicit assert mechanism you can pass as <code>expected_status</code> the values <code>any</code> or <code>anything</code>.</p>\n<p>Other optional requests arguments can be passed using <code>**kwargs</code> see the <a href=\"#GET\" class=\"name\">GET</a> keyword for the complete list.</p>", "shortdoc": "Sends a POST request.", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/RequestsKeywords.py", "lineno": 196}, {"name": "POST On Session", "args": [{"name": "alias", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "alias"}, {"name": "url", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "url"}, {"name": "data", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "data=None"}, {"name": "json", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "json=None"}, {"name": "expected_status", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "expected_status=None"}, {"name": "msg", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "msg=None"}, {"name": "kwargs", "types": [], "defaultValue": null, "kind": "VAR_NAMED", "required": false, "repr": "**kwargs"}], "doc": "<p>Sends a POST request on a previously created HTTP Session.</p>\n<p>Session will be identified using the <code>alias</code> name. The endpoint used to send the request is the <code>url</code> parameter, while its body can be passed using <code>data</code> or <code>json</code> parameters.</p>\n<p><code>data</code> can be a dictionary, list of tuples, bytes, or file-like object. If you want to pass a json body pass a dictionary as <code>json</code> parameter.</p>\n<p>By default this keyword fails if a status code with error values is returned in the response, this behavior can be modified using the <code>expected_status</code> and <code>msg</code> parameters, read more about it in <a href=\"#Status%20Should%20Be\" class=\"name\">Status Should Be</a> keyword documentation. In order to disable this implicit assert mechanism you can pass as <code>expected_status</code> the values <code>any</code> or <code>anything</code>.</p>\n<p>Other optional requests arguments can be passed using <code>**kwargs</code> see the <a href=\"#GET\" class=\"name\">GET</a> keyword for the complete list.</p>", "shortdoc": "Sends a POST request on a previously created HTTP Session.", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/RequestsOnSessionKeywords.py", "lineno": 36}, {"name": "Post Request", "args": [{"name": "alias", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "alias"}, {"name": "uri", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "uri"}, {"name": "data", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "data=None"}, {"name": "json", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "json=None"}, {"name": "params", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "params=None"}, {"name": "headers", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "headers=None"}, {"name": "files", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "files=None"}, {"name": "allow_redirects", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "allow_redirects=None"}, {"name": "timeout", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "timeout=None"}], "doc": "<p><b>DEPRECATED</b> Please use <a href=\"#POST%20On%20Session\" class=\"name\">POST On Session</a> instead.</p>\n<p>Send a POST request on the session object found using the given <span class=\"name\">alias</span></p>\n<p><code>alias</code> that will be used to identify the Session object in the cache</p>\n<p><code>uri</code> to send the POST request to</p>\n<p><code>data</code> 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 or passed as such for multipart form data if <code>files</code> is also defined or file descriptor retrieved by Get File For Streaming Upload</p>\n<p><code>json</code> a value that will be json encoded and sent as POST data if files or data is not specified</p>\n<p><code>params</code> url parameters to append to the uri</p>\n<p><code>headers</code> a dictionary of headers to use with the request</p>\n<p><code>files</code> a dictionary of file names containing file data to POST to the server</p>\n<p><code>allow_redirects</code> Boolean. Set to True if POST/PUT/DELETE redirect following is allowed.</p>\n<p><code>timeout</code> connection timeout</p>", "shortdoc": "*DEPRECATED* Please use `POST On Session` instead.", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/DeprecatedKeywords.py", "lineno": 88}, {"name": "PUT", "args": [{"name": "url", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "url"}, {"name": "data", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "data=None"}, {"name": "json", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "json=None"}, {"name": "expected_status", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "expected_status=None"}, {"name": "msg", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "msg=None"}, {"name": "kwargs", "types": [], "defaultValue": null, "kind": "VAR_NAMED", "required": false, "repr": "**kwargs"}], "doc": "<p>Sends a PUT request.</p>\n<p>The endpoint used to send the request is the <code>url</code> parameter, while its body can be passed using <code>data</code> or <code>json</code> parameters.</p>\n<p><code>data</code> can be a dictionary, list of tuples, bytes, or file-like object. If you want to pass a json body pass a dictionary as <code>json</code> parameter.</p>\n<p>By default this keyword fails if a status code with error values is returned in the response, this behavior can be modified using the <code>expected_status</code> and <code>msg</code> parameters, read more about it in <a href=\"#Status%20Should%20Be\" class=\"name\">Status Should Be</a> keyword documentation. In order to disable this implicit assert mechanism you can pass as <code>expected_status</code> the values <code>any</code> or <code>anything</code>.</p>\n<p>Other optional requests arguments can be passed using <code>**kwargs</code> see the <a href=\"#GET\" class=\"name\">GET</a> keyword for the complete list.</p>", "shortdoc": "Sends a PUT request.", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/RequestsKeywords.py", "lineno": 222}, {"name": "PUT On Session", "args": [{"name": "alias", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "alias"}, {"name": "url", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "url"}, {"name": "data", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "data=None"}, {"name": "json", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "json=None"}, {"name": "expected_status", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "expected_status=None"}, {"name": "msg", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "msg=None"}, {"name": "kwargs", "types": [], "defaultValue": null, "kind": "VAR_NAMED", "required": false, "repr": "**kwargs"}], "doc": "<p>Sends a PUT request on a previously created HTTP Session.</p>\n<p>Session will be identified using the <code>alias</code> name. The endpoint used to send the request is the <code>url</code> parameter, while its body can be passed using <code>data</code> or <code>json</code> parameters.</p>\n<p><code>data</code> can be a dictionary, list of tuples, bytes, or file-like object. If you want to pass a json body pass a dictionary as <code>json</code> parameter.</p>\n<p>By default this keyword fails if a status code with error values is returned in the response, this behavior can be modified using the <code>expected_status</code> and <code>msg</code> parameters, read more about it in <a href=\"#Status%20Should%20Be\" class=\"name\">Status Should Be</a> keyword documentation. In order to disable this implicit assert mechanism you can pass as <code>expected_status</code> the values <code>any</code> or <code>anything</code>.</p>\n<p>Other optional requests arguments can be passed using <code>**kwargs</code> see the <a href=\"#GET\" class=\"name\">GET</a> keyword for the complete list.</p>", "shortdoc": "Sends a PUT request on a previously created HTTP Session.", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/RequestsOnSessionKeywords.py", "lineno": 92}, {"name": "Put Request", "args": [{"name": "alias", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "alias"}, {"name": "uri", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "uri"}, {"name": "data", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "data=None"}, {"name": "json", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "json=None"}, {"name": "params", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "params=None"}, {"name": "files", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "files=None"}, {"name": "headers", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "headers=None"}, {"name": "allow_redirects", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "allow_redirects=None"}, {"name": "timeout", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "timeout=None"}], "doc": "<p><b>DEPRECATED</b> Please use <a href=\"#PUT%20On%20Session\" class=\"name\">PUT On Session</a> instead.</p>\n<p>Send a PUT request on the session object found using the given <span class=\"name\">alias</span></p>\n<p><code>alias</code> that will be used to identify the Session object in the cache</p>\n<p><code>uri</code> to send the PUT request to</p>\n<p><code>data</code> a dictionary of key-value pairs that will be urlencoded and sent as PUT data or binary data that is sent as the raw body content or file descriptor retrieved by Get File For Streaming Upload</p>\n<p><code>json</code> a value that will be json encoded and sent as PUT data if data is not specified</p>\n<p><code>headers</code> a dictionary of headers to use with the request</p>\n<p><code>allow_redirects</code> Boolean. Set to True if POST/PUT/DELETE redirect following is allowed.</p>\n<p><code>params</code> url parameters to append to the uri</p>\n<p><code>timeout</code> connection timeout</p>", "shortdoc": "*DEPRECATED* Please use `PUT On Session` instead.", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/DeprecatedKeywords.py", "lineno": 205}, {"name": "Request Should Be Successful", "args": [{"name": "response", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "response=None"}], "doc": "<p>Fails if response status code is a client or server error (4xx, 5xx).</p>\n<p><code>response</code> is the output of other requests keywords like <a href=\"#GET%20On%20Session\" class=\"name\">GET On Session</a>. If omitted the last response will be used.</p>\n<p>In case of failure an HTTPError will be automatically raised.</p>\n<p>For a more versatile assert keyword see <a href=\"#Status%20Should%20Be\" class=\"name\">Status Should Be</a>.</p>", "shortdoc": "Fails if response status code is a client or server error (4xx, 5xx).", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/RequestsKeywords.py", "lineno": 125}, {"name": "Session Exists", "args": [{"name": "alias", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "alias"}], "doc": "<p>Return True if the session has been already created</p>\n<p><code>alias</code> that has been used to identify the Session object in the cache</p>", "shortdoc": "Return True if the session has been already created", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/SessionKeywords.py", "lineno": 532}, {"name": "Status Should Be", "args": [{"name": "expected_status", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "expected_status"}, {"name": "response", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "response=None"}, {"name": "msg", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "msg=None"}], "doc": "<p>Fails if response status code is different than the expected.</p>\n<p><code>expected_status</code> could be the code number as an integer or as string. But it could also be a named status code like 'ok', 'created', 'accepted' or 'bad request', 'not found' etc.</p>\n<p><code>response</code> is the output of other requests keywords like <a href=\"#GET\" class=\"name\">GET</a> or <a href=\"#GET%20On%20Session\" class=\"name\">GET On Session</a>. If omitted the last response will be used.</p>\n<p>In case of failure an HTTPError will be automatically raised. A custom failure message <code>msg</code> can be added like in built-in keywords.</p>\n<p>New requests keywords like <a href=\"#GET\" class=\"name\">GET</a> or <a href=\"#GET%20On%20Session\" class=\"name\">GET On Session</a> (starting from 0.8 version) already have an implicit assert mechanism that, by default, verifies the response status code. <a href=\"#Status%20Should%20Be\" class=\"name\">Status Should Be</a> keyword can be useful when you disable implicit assert using <code>expected_status=anything</code>.</p>\n<p>For example when you have a nested keyword that is used for both OK and ERROR responses:</p>\n<pre>\n  <b>*</b> Test Cases <b>*</b>\n\n  Test Get Request And Make Sure Is A 404 Response\n      ${resp}=            GET Custom Keyword That Returns OK or ERROR Response  case=notfound\n      Status Should Be    404    ${resp}\n      Should Be Equal As Strings  NOT FOUND  ${resp.reason}\n\n  Test Get Request And Make Sure Is OK\n      ${resp}=            GET Custom Keyword That Returns OK or ERROR Response  case=pass\n      Status Should Be    200    ${resp}\n      Should Be Equal As Strings  OK  ${resp.reason}\n\n  <b>*</b> Keywords <b>*</b>\n\n  GET Custom Keyword That Returns OK or ERROR Response\n  [Arguments]  $case\n       [...]\n      IF $case == notfound\n          $resp=     GET [...] expected_status=Anything\n          [Return]   $resp\n      ELSE\n       [...]\n</pre>", "shortdoc": "Fails if response status code is different than the expected.", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/RequestsKeywords.py", "lineno": 77}, {"name": "To Json", "args": [{"name": "content", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "content"}, {"name": "pretty_print", "types": [], "defaultValue": "False", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "pretty_print=False"}], "doc": "<p><b>DEPRECATED</b> Please use ${resp.json()} instead. Have a look at the improved HTML output as pretty printing replacement.</p>\n<p>Convert a string to a JSON object</p>\n<p><code>content</code> String content to convert into JSON</p>\n<p><code>pretty_print</code> If defined, will output JSON is pretty print format</p>", "shortdoc": "*DEPRECATED* Please use ${resp.json()} instead. Have a look at the improved HTML output as pretty printing replacement.", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/DeprecatedKeywords.py", "lineno": 15}, {"name": "Update Session", "args": [{"name": "alias", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "alias"}, {"name": "headers", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "headers=None"}, {"name": "cookies", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "cookies=None"}], "doc": "<p>Updates HTTP Session Headers and Cookies.</p>\n<p>Session will be identified using the <code>alias</code> name. Dictionary of <code>headers</code> and <code>cookies</code> to be updated and merged into session data.</p>", "shortdoc": "Updates HTTP Session Headers and Cookies.", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/SessionKeywords.py", "lineno": 552}], "dataTypes": {"enums": [], "typedDicts": []}}
+libdoc = {"name": "RequestsLibrary", "doc": "<p>RequestsLibrary is a Robot Framework library aimed to provide HTTP api testing functionalities by wrapping the well known Python Requests Library.</p>\n<h3 id=\"Table of contents\">Table of contents</h3>\n<ul>\n<li><a href=\"#Usage\" class=\"name\">Usage</a></li>\n<li><a href=\"#Response%20Object\" class=\"name\">Response Object</a></li>\n<li><a href=\"#POST%20a%20Multipart-Encoded%20File\" class=\"name\">POST a Multipart-Encoded File</a></li>\n<li><a href=\"#Keywords\" class=\"name\">Keywords</a></li>\n</ul>\n<h2 id=\"Usage\">Usage</h2>\n<p>The quickest way to start is using the requests keywords and urls see below examples:</p>\n<pre>\n  <b>*</b> Settings <b>*</b>\n  Library               RequestsLibrary\n\n  <b>*</b> Test Cases <b>*</b>\n  Quick Get Request Test\n      ${response}=    GET  <a href=\"https://www.google.com\">https://www.google.com</a>\n\n  Quick Get Request With Parameters Test\n      ${response}=    GET  <a href=\"https://www.google.com/search\">https://www.google.com/search</a>  params=query=ciao  expected_status=200\n\n  Quick Get A JSON Body Test\n      ${response}=    GET  <a href=\"https://jsonplaceholder.typicode.com/posts/1\">https://jsonplaceholder.typicode.com/posts/1</a>\n      Should Be Equal As Strings    1  ${response.json()}[id]\n</pre>\n<p>In order to share the HTTP Session (with the same url, headers, cookies, etc.) among multiple requests, a new connection needs to be prepared with <code>Create Session</code> and passed to the <span class=\"name\">* On Session</span> keywords. You can then execute any <span class=\"name\">* On Session</span> keywords on the shared session by passing the created session alias name, this will increase performances since the connection and ssl handshake is recycled and not repeated for each requests. Below some more advanced examples:</p>\n<pre>\n  <b>*</b> Settings <b>*</b>\n  Library    Collections\n  Library    RequestsLibrary\n\n  Suite Setup    Create Session  jsonplaceholder  <a href=\"https://jsonplaceholder.typicode.com\">https://jsonplaceholder.typicode.com</a>\n\n  <b>*</b> Test Cases <b>*</b>\n\n  Get Request Test\n      Create Session    google  <a href=\"http://www.google.com\">http://www.google.com</a>\n\n      ${resp_google}=   GET On Session  google  /  expected_status=200\n      ${resp_json}=     GET On Session  jsonplaceholder  /posts/1\n\n      Should Be Equal As Strings          ${resp_google.reason}  OK\n      Dictionary Should Contain Value     ${resp_json.json()}  sunt aut facere repellat provident\n\n  Post Request Test\n      &amp;{data}=    Create dictionary  title=Robotframework requests  body=This is a test!  userId=1\n      ${resp}=    POST On Session    jsonplaceholder  /posts  json=${data}  expected_status=anything\n\n      Status Should Be                 201  ${resp}\n      Dictionary Should Contain Key    ${resp.json()}  id\n</pre>\n<h2 id=\"Response Object\">Response Object</h2>\n<p>All the HTTP requests keywords (GET, POST, PUT, etc.) return an extremely useful Response object. The Response object contains a server's response to an HTTP request.</p>\n<p>You can access the different attributes with the dot notation in this way: <code>${response.json()}</code> or <code>${response.text}</code>. Below the list of the most useful attributes:</p>\n<table border=\"1\">\n<tr>\n<th>Attributes</th>\n<th>Explanation</th>\n</tr>\n<tr>\n<td>content</td>\n<td>Content of the response, in bytes.</td>\n</tr>\n<tr>\n<td>cookies</td>\n<td>A CookieJar of Cookies the server sent back.</td>\n</tr>\n<tr>\n<td>elapsed</td>\n<td>The amount of time elapsed between sending the request and the arrival of the response (as a timedelta). This property specifically measures the time taken between sending the first byte of the request and finishing parsing the headers. It is therefore unaffected by consuming the response content or the value of the stream keyword argument.</td>\n</tr>\n<tr>\n<td>encoding</td>\n<td>Encoding to decode with when accessing <code>response.text.</code></td>\n</tr>\n<tr>\n<td>headers</td>\n<td>Case-insensitive Dictionary of Response Headers. For example, <code>headers['content-encoding']</code> will return the value of a `Content-Encoding' response header.</td>\n</tr>\n<tr>\n<td>history</td>\n<td>A list of Response objects from the history of the Request. Any redirect responses will end up here. The list is sorted from the oldest to the most recent request.</td>\n</tr>\n<tr>\n<td>json</td>\n<td>Returns the json-encoded content of a response, if any. Parameters: <code>**kwargs</code> - Optional arguments that json.loads takes. Raises:        ValueError ? If the response body does not contain valid json.</td>\n</tr>\n<tr>\n<td>ok</td>\n<td>Returns True if status_code is less than 400, False if not.</td>\n</tr>\n<tr>\n<td>reason</td>\n<td>Textual reason of responded HTTP Status, e.g. <code>Not Found</code> or <code>OK</code>.</td>\n</tr>\n<tr>\n<td>status_code</td>\n<td>Integer Code of responded HTTP Status, e.g. 404 or 200.</td>\n</tr>\n<tr>\n<td>text</td>\n<td>Content of the response, in unicode. If <code>response.encoding</code> is <code>None</code>, encoding will be guessed using chardet. The encoding of the response content is determined based solely on HTTP headers, following RFC 2616 to the letter. If you can take advantage of non-HTTP knowledge to make a better guess at the encoding, you should set <code>response.encoding</code> appropriately before accessing this property.</td>\n</tr>\n<tr>\n<td>url</td>\n<td>Final URL location of Response.</td>\n</tr>\n</table>\n<h2 id=\"POST a Multipart-Encoded File\">POST a Multipart-Encoded File</h2>\n<p>RequestsLibrary makes it simple to upload Multipart-encoded files, but in order to make sure that the Python Library provides automatically the right <code>Content-Length</code> and <code>multipart/form-data; boundary=...</code> headers you SHOULD NOT provide those headers manually, use the keyword <a href=\"#Get%20File%20For%20Streaming%20Upload\" class=\"name\">Get File For Streaming Upload</a> instead that opens the files in binary mode.</p>\n<p>Below an example of multiple file sent over a single POST:</p>\n<pre>\n  Test Post Multiple Files\n      ${file_1}=  Get File For Streaming Upload  files/randombytes.bin\n      ${file_2}=  Get File For Streaming Upload  files/randombytes.bin\n      ${files}=   Create Dictionary  randombytes1  ${file_1}  randombytes2  ${file_2}\n\n      ${resp}=    POST  <a href=\"https://someurl\">https://someurl</a>  files=${files}\n</pre>\n<p>You can find a working test example in <span class=\"name\">atests/test_post_multipart.robot</span>.</p>\n<p>For a complete reference verify the official Requests documentation:</p>\n<ul>\n<li><a href=\"https://2.python-requests.org/en/master/user/quickstart/#post-a-multipart-encoded-file\">https://2.python-requests.org/en/master/user/quickstart/#post-a-multipart-encoded-file</a></li>\n<li><a href=\"https://2.python-requests.org/en/master/user/advanced/#post-multiple-multipart-encoded-files\">https://2.python-requests.org/en/master/user/advanced/#post-multiple-multipart-encoded-files</a></li>\n</ul>", "version": "0.9.1", "generated": "2021-08-18 01:20:15", "type": "LIBRARY", "scope": "GLOBAL", "docFormat": "HTML", "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/__init__.py", "lineno": 19, "tags": [], "inits": [], "keywords": [{"name": "Create Client Cert Session", "args": [{"name": "alias", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "alias"}, {"name": "url", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "url"}, {"name": "headers", "types": [], "defaultValue": "{}", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "headers={}"}, {"name": "cookies", "types": [], "defaultValue": "{}", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "cookies={}"}, {"name": "client_certs", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "client_certs=None"}, {"name": "timeout", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "timeout=None"}, {"name": "proxies", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "proxies=None"}, {"name": "verify", "types": [], "defaultValue": "False", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "verify=False"}, {"name": "debug", "types": [], "defaultValue": "0", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "debug=0"}, {"name": "max_retries", "types": [], "defaultValue": "3", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "max_retries=3"}, {"name": "backoff_factor", "types": [], "defaultValue": "0.1", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "backoff_factor=0.1"}, {"name": "disable_warnings", "types": [], "defaultValue": "0", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "disable_warnings=0"}, {"name": "retry_status_list", "types": [], "defaultValue": "[]", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "retry_status_list=[]"}, {"name": "retry_method_list", "types": [], "defaultValue": "['PUT', 'TRACE', 'HEAD', 'GET', 'DELETE', 'OPTIONS']", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "retry_method_list=['PUT', 'TRACE', 'HEAD', 'GET', 'DELETE', 'OPTIONS']"}], "doc": "<p>Create Session: create a HTTP session to a server</p>\n<p><code>url</code> Base url of the server</p>\n<p><code>alias</code> Robot Framework alias to identify the session</p>\n<p><code>headers</code> Dictionary of default headers</p>\n<p><code>cookies</code> Dictionary of cookies</p>\n<p><code>client_certs</code> ['client certificate', 'client key'] PEM files containing the client key and certificate</p>\n<p><code>timeout</code> Connection timeout</p>\n<p><code>proxies</code> Dictionary mapping protocol or protocol and host to the URL of the proxy (e.g. {'http': 'foo.bar:3128', '<a href=\"http://host.name\">http://host.name</a>': 'foo.bar:4012'})</p>\n<p><code>verify</code> Whether the SSL cert will be verified. A CA_BUNDLE path can also be provided. Defaults to False.</p>\n<p><code>debug</code> Enable http verbosity option more information <a href=\"https://docs.python.org/2/library/httplib.html#httplib.HTTPConnection.set_debuglevel\">https://docs.python.org/2/library/httplib.html#httplib.HTTPConnection.set_debuglevel</a></p>\n<p><code>max_retries</code> Number of maximum retries each connection should attempt. By default it will retry 3 times in case of connection errors only. A 0 value will disable any kind of retries regardless of other retry settings. In case the number of retries is reached a retry exception is raised.</p>\n<p><code>disable_warnings</code> Disable requests warning useful when you have large number of testcases</p>\n<p><code>backoff_factor</code> Introduces a delay time between retries that is longer after each retry. eg. if backoff_factor is set to 0.1 the sleep between attemps will be: 0.0, 0.2, 0.4 More info here: <a href=\"https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html\">https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html</a></p>\n<p><code>retry_method_list</code> List of uppercased HTTP method verbs where retries are allowed. By default retries are allowed only on HTTP requests methods that are considered to be idempotent (multiple requests with the same parameters end with the same state). eg. set to ['POST', 'GET'] to retry only those kind of requests.</p>\n<p><code>retry_status_list</code> List of integer HTTP status codes that, if returned, a retry is attempted. eg. set to [502, 503] to retry requests if those status are returned. Note that max_retries must be greater than 0.</p>", "shortdoc": "Create Session: create a HTTP session to a server", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/SessionKeywords.py", "lineno": 191}, {"name": "Create Custom Session", "args": [{"name": "alias", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "alias"}, {"name": "url", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "url"}, {"name": "auth", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "auth"}, {"name": "headers", "types": [], "defaultValue": "{}", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "headers={}"}, {"name": "cookies", "types": [], "defaultValue": "{}", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "cookies={}"}, {"name": "timeout", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "timeout=None"}, {"name": "proxies", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "proxies=None"}, {"name": "verify", "types": [], "defaultValue": "False", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "verify=False"}, {"name": "debug", "types": [], "defaultValue": "0", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "debug=0"}, {"name": "max_retries", "types": [], "defaultValue": "3", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "max_retries=3"}, {"name": "backoff_factor", "types": [], "defaultValue": "0.1", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "backoff_factor=0.1"}, {"name": "disable_warnings", "types": [], "defaultValue": "0", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "disable_warnings=0"}, {"name": "retry_status_list", "types": [], "defaultValue": "[]", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "retry_status_list=[]"}, {"name": "retry_method_list", "types": [], "defaultValue": "['PUT', 'TRACE', 'HEAD', 'GET', 'DELETE', 'OPTIONS']", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "retry_method_list=['PUT', 'TRACE', 'HEAD', 'GET', 'DELETE', 'OPTIONS']"}], "doc": "<p>Create Session: create a HTTP session to a server</p>\n<p><code>url</code> Base url of the server</p>\n<p><code>alias</code> Robot Framework alias to identify the session</p>\n<p><code>headers</code> Dictionary of default headers</p>\n<p><code>cookies</code> Dictionary of cookies</p>\n<p><code>auth</code> A Custom Authentication object to be passed on to the requests library. <a href=\"http://docs.python-requests.org/en/master/user/advanced/#custom-authentication\">http://docs.python-requests.org/en/master/user/advanced/#custom-authentication</a></p>\n<p><code>timeout</code> Connection timeout</p>\n<p><code>proxies</code> Dictionary mapping protocol or protocol and host to the URL of the proxy (e.g. {'http': 'foo.bar:3128', '<a href=\"http://host.name\">http://host.name</a>': 'foo.bar:4012'})</p>\n<p><code>verify</code> Whether the SSL cert will be verified. A CA_BUNDLE path can also be provided. Defaults to False.</p>\n<p><code>debug</code> Enable http verbosity option more information <a href=\"https://docs.python.org/2/library/httplib.html#httplib.HTTPConnection.set_debuglevel\">https://docs.python.org/2/library/httplib.html#httplib.HTTPConnection.set_debuglevel</a></p>\n<p><code>max_retries</code> Number of maximum retries each connection should attempt. By default it will retry 3 times in case of connection errors only. A 0 value will disable any kind of retries regardless of other retry settings. In case the number of retries is reached a retry exception is raised.</p>\n<p><code>disable_warnings</code> Disable requests warning useful when you have large number of testcases</p>\n<p><code>backoff_factor</code> Introduces a delay time between retries that is longer after each retry. eg. if backoff_factor is set to 0.1 the sleep between attemps will be: 0.0, 0.2, 0.4 More info here: <a href=\"https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html\">https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html</a></p>\n<p><code>retry_method_list</code> List of uppercased HTTP method verbs where retries are allowed. By default retries are allowed only on HTTP requests methods that are considered to be idempotent (multiple requests with the same parameters end with the same state). eg. set to ['POST', 'GET'] to retry only those kind of requests.</p>\n<p><code>retry_status_list</code> List of integer HTTP status codes that, if returned, a retry is attempted. eg. set to [502, 503] to retry requests if those status are returned. Note that max_retries must be greater than 0.</p>", "shortdoc": "Create Session: create a HTTP session to a server", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/SessionKeywords.py", "lineno": 277}, {"name": "Create Digest Session", "args": [{"name": "alias", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "alias"}, {"name": "url", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "url"}, {"name": "auth", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "auth"}, {"name": "headers", "types": [], "defaultValue": "{}", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "headers={}"}, {"name": "cookies", "types": [], "defaultValue": "{}", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "cookies={}"}, {"name": "timeout", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "timeout=None"}, {"name": "proxies", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "proxies=None"}, {"name": "verify", "types": [], "defaultValue": "False", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "verify=False"}, {"name": "debug", "types": [], "defaultValue": "0", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "debug=0"}, {"name": "max_retries", "types": [], "defaultValue": "3", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "max_retries=3"}, {"name": "backoff_factor", "types": [], "defaultValue": "0.1", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "backoff_factor=0.1"}, {"name": "disable_warnings", "types": [], "defaultValue": "0", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "disable_warnings=0"}, {"name": "retry_status_list", "types": [], "defaultValue": "[]", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "retry_status_list=[]"}, {"name": "retry_method_list", "types": [], "defaultValue": "['PUT', 'TRACE', 'HEAD', 'GET', 'DELETE', 'OPTIONS']", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "retry_method_list=['PUT', 'TRACE', 'HEAD', 'GET', 'DELETE', 'OPTIONS']"}], "doc": "<p>Create Session: create a HTTP session to a server</p>\n<p><code>url</code> Base url of the server</p>\n<p><code>alias</code> Robot Framework alias to identify the session</p>\n<p><code>headers</code> Dictionary of default headers</p>\n<p><code>cookies</code> Dictionary of cookies</p>\n<p><code>auth</code> ['DOMAIN', 'username', 'password'] for NTLM Authentication</p>\n<p><code>timeout</code> Connection timeout</p>\n<p><code>proxies</code> Dictionary mapping protocol or protocol and host to the URL of the proxy (e.g. {'http': 'foo.bar:3128', '<a href=\"http://host.name\">http://host.name</a>': 'foo.bar:4012'})</p>\n<p><code>verify</code> Whether the SSL cert will be verified. A CA_BUNDLE path can also be provided. Defaults to False.</p>\n<p><code>debug</code> Enable http verbosity option more information <a href=\"https://docs.python.org/2/library/httplib.html#httplib.HTTPConnection.set_debuglevel\">https://docs.python.org/2/library/httplib.html#httplib.HTTPConnection.set_debuglevel</a></p>\n<p><code>max_retries</code> Number of maximum retries each connection should attempt. By default it will retry 3 times in case of connection errors only. A 0 value will disable any kind of retries regardless of other retry settings. In case the number of retries is reached a retry exception is raised.</p>\n<p><code>disable_warnings</code> Disable requests warning useful when you have large number of testcases</p>\n<p><code>backoff_factor</code> Introduces a delay time between retries that is longer after each retry. eg. if backoff_factor is set to 0.1 the sleep between attemps will be: 0.0, 0.2, 0.4 More info here: <a href=\"https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html\">https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html</a></p>\n<p><code>retry_method_list</code> List of uppercased HTTP method verbs where retries are allowed. By default retries are allowed only on HTTP requests methods that are considered to be idempotent (multiple requests with the same parameters end with the same state). eg. set to ['POST', 'GET'] to retry only those kind of requests.</p>\n<p><code>retry_status_list</code> List of integer HTTP status codes that, if returned, a retry is attempted. eg. set to [502, 503] to retry requests if those status are returned. Note that max_retries must be greater than 0.</p>", "shortdoc": "Create Session: create a HTTP session to a server", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/SessionKeywords.py", "lineno": 361}, {"name": "Create Ntlm Session", "args": [{"name": "alias", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "alias"}, {"name": "url", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "url"}, {"name": "auth", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "auth"}, {"name": "headers", "types": [], "defaultValue": "{}", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "headers={}"}, {"name": "cookies", "types": [], "defaultValue": "{}", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "cookies={}"}, {"name": "timeout", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "timeout=None"}, {"name": "proxies", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "proxies=None"}, {"name": "verify", "types": [], "defaultValue": "False", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "verify=False"}, {"name": "debug", "types": [], "defaultValue": "0", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "debug=0"}, {"name": "max_retries", "types": [], "defaultValue": "3", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "max_retries=3"}, {"name": "backoff_factor", "types": [], "defaultValue": "0.1", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "backoff_factor=0.1"}, {"name": "disable_warnings", "types": [], "defaultValue": "0", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "disable_warnings=0"}, {"name": "retry_status_list", "types": [], "defaultValue": "[]", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "retry_status_list=[]"}, {"name": "retry_method_list", "types": [], "defaultValue": "['PUT', 'TRACE', 'HEAD', 'GET', 'DELETE', 'OPTIONS']", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "retry_method_list=['PUT', 'TRACE', 'HEAD', 'GET', 'DELETE', 'OPTIONS']"}], "doc": "<p>Create Session: create a HTTP session to a server</p>\n<p><code>url</code> Base url of the server</p>\n<p><code>alias</code> Robot Framework alias to identify the session</p>\n<p><code>headers</code> Dictionary of default headers</p>\n<p><code>cookies</code> Dictionary of cookies</p>\n<p><code>auth</code> ['DOMAIN', 'username', 'password'] for NTLM Authentication</p>\n<p><code>timeout</code> Connection timeout</p>\n<p><code>proxies</code> Dictionary mapping protocol or protocol and host to the URL of the proxy (e.g. {'http': 'foo.bar:3128', '<a href=\"http://host.name\">http://host.name</a>': 'foo.bar:4012'})</p>\n<p><code>verify</code> Whether the SSL cert will be verified. A CA_BUNDLE path can also be provided. Defaults to False.</p>\n<p><code>debug</code> Enable http verbosity option more information <a href=\"https://docs.python.org/2/library/httplib.html#httplib.HTTPConnection.set_debuglevel\">https://docs.python.org/2/library/httplib.html#httplib.HTTPConnection.set_debuglevel</a></p>\n<p><code>max_retries</code> Number of maximum retries each connection should attempt. By default it will retry 3 times in case of connection errors only. A 0 value will disable any kind of retries regardless of other retry settings. In case the number of retries is reached a retry exception is raised.</p>\n<p><code>disable_warnings</code> Disable requests warning useful when you have large number of testcases</p>\n<p><code>backoff_factor</code> Introduces a delay time between retries that is longer after each retry. eg. if backoff_factor is set to 0.1 the sleep between attemps will be: 0.0, 0.2, 0.4 More info here: <a href=\"https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html\">https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html</a></p>\n<p><code>retry_method_list</code> List of uppercased HTTP method verbs where retries are allowed. By default retries are allowed only on HTTP requests methods that are considered to be idempotent (multiple requests with the same parameters end with the same state). eg. set to ['POST', 'GET'] to retry only those kind of requests.</p>\n<p><code>retry_status_list</code> List of integer HTTP status codes that, if returned, a retry is attempted. eg. set to [502, 503] to retry requests if those status are returned. Note that max_retries must be greater than 0.</p>", "shortdoc": "Create Session: create a HTTP session to a server", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/SessionKeywords.py", "lineno": 439}, {"name": "Create Session", "args": [{"name": "alias", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "alias"}, {"name": "url", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "url"}, {"name": "headers", "types": [], "defaultValue": "{}", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "headers={}"}, {"name": "cookies", "types": [], "defaultValue": "{}", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "cookies={}"}, {"name": "auth", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "auth=None"}, {"name": "timeout", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "timeout=None"}, {"name": "proxies", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "proxies=None"}, {"name": "verify", "types": [], "defaultValue": "False", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "verify=False"}, {"name": "debug", "types": [], "defaultValue": "0", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "debug=0"}, {"name": "max_retries", "types": [], "defaultValue": "3", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "max_retries=3"}, {"name": "backoff_factor", "types": [], "defaultValue": "0.1", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "backoff_factor=0.1"}, {"name": "disable_warnings", "types": [], "defaultValue": "0", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "disable_warnings=0"}, {"name": "retry_status_list", "types": [], "defaultValue": "[]", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "retry_status_list=[]"}, {"name": "retry_method_list", "types": [], "defaultValue": "['PUT', 'TRACE', 'HEAD', 'GET', 'DELETE', 'OPTIONS']", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "retry_method_list=['PUT', 'TRACE', 'HEAD', 'GET', 'DELETE', 'OPTIONS']"}], "doc": "<p>Create Session: create a HTTP session to a server</p>\n<p><code>alias</code> Robot Framework alias to identify the session</p>\n<p><code>url</code> Base url of the server</p>\n<p><code>headers</code> Dictionary of default headers</p>\n<p><code>cookies</code> Dictionary of cookies</p>\n<p><code>auth</code> List of username &amp; password for HTTP Basic Auth</p>\n<p><code>timeout</code> Connection timeout</p>\n<p><code>proxies</code> Dictionary mapping protocol or protocol and host to the URL of the proxy (e.g. {'http': 'foo.bar:3128', '<a href=\"http://host.name\">http://host.name</a>': 'foo.bar:4012'})</p>\n<p><code>verify</code> Whether the SSL cert will be verified. A CA_BUNDLE path can also be provided.</p>\n<p><code>debug</code> Enable http verbosity option more information <a href=\"https://docs.python.org/2/library/httplib.html#httplib.HTTPConnection.set_debuglevel\">https://docs.python.org/2/library/httplib.html#httplib.HTTPConnection.set_debuglevel</a></p>\n<p><code>max_retries</code> Number of maximum retries each connection should attempt. By default it will retry 3 times in case of connection errors only. A 0 value will disable any kind of retries regardless of other retry settings. In case the number of retries is reached a retry exception is raised.</p>\n<p><code>disable_warnings</code> Disable requests warning useful when you have large number of testcases</p>\n<p><code>backoff_factor</code> Introduces a delay time between retries that is longer after each retry. eg. if backoff_factor is set to 0.1 the sleep between attemps will be: 0.0, 0.2, 0.4 More info here: <a href=\"https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html\">https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html</a></p>\n<p><code>retry_method_list</code> List of uppercased HTTP method verbs where retries are allowed. By default retries are allowed only on HTTP requests methods that are considered to be idempotent (multiple requests with the same parameters end with the same state). eg. set to ['POST', 'GET'] to retry only those kind of requests.</p>\n<p><code>retry_status_list</code> List of integer HTTP status codes that, if returned, a retry is attempted. eg. set to [502, 503] to retry requests if those status are returned. Note that max_retries must be greater than 0.</p>", "shortdoc": "Create Session: create a HTTP session to a server", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/SessionKeywords.py", "lineno": 109}, {"name": "DELETE", "args": [{"name": "url", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "url"}, {"name": "expected_status", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "expected_status=None"}, {"name": "msg", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "msg=None"}, {"name": "kwargs", "types": [], "defaultValue": null, "kind": "VAR_NAMED", "required": false, "repr": "**kwargs"}], "doc": "<p>Sends a DELETE request.</p>\n<p>The endpoint used to send the request is the <code>url</code> parameter.</p>\n<p>By default this keyword fails if a status code with error values is returned in the response, this behavior can be modified using the <code>expected_status</code> and <code>msg</code> parameters, read more about it in <a href=\"#Status%20Should%20Be\" class=\"name\">Status Should Be</a> keyword documentation. In order to disable this implicit assert mechanism you can pass as <code>expected_status</code> the values <code>any</code> or <code>anything</code>.</p>\n<p>Other optional requests arguments can be passed using <code>**kwargs</code> see the <a href=\"#GET\" class=\"name\">GET</a> keyword for the complete list.</p>", "shortdoc": "Sends a DELETE request.", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/RequestsKeywords.py", "lineno": 299}, {"name": "Delete All Sessions", "args": [], "doc": "<p>Removes all the session objects</p>", "shortdoc": "Removes all the session objects", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/SessionKeywords.py", "lineno": 544}, {"name": "DELETE On Session", "args": [{"name": "alias", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "alias"}, {"name": "url", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "url"}, {"name": "expected_status", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "expected_status=None"}, {"name": "msg", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "msg=None"}, {"name": "kwargs", "types": [], "defaultValue": null, "kind": "VAR_NAMED", "required": false, "repr": "**kwargs"}], "doc": "<p>Sends a DELETE request on a previously created HTTP Session.</p>\n<p>Session will be identified using the <code>alias</code> name. The endpoint used to send the request is the <code>url</code> parameter.</p>\n<p>By default this keyword fails if a status code with error values is returned in the response, this behavior can be modified using the <code>expected_status</code> and <code>msg</code> parameters, read more about it in <a href=\"#Status%20Should%20Be\" class=\"name\">Status Should Be</a> keyword documentation. In order to disable this implicit assert mechanism you can pass as <code>expected_status</code> the values <code>any</code> or <code>anything</code>.</p>\n<p>Other optional requests arguments can be passed using <code>**kwargs</code> see the <a href=\"#GET\" class=\"name\">GET</a> keyword for the complete list.</p>", "shortdoc": "Sends a DELETE request on a previously created HTTP Session.", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/RequestsOnSessionKeywords.py", "lineno": 120}, {"name": "Delete Request", "args": [{"name": "alias", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "alias"}, {"name": "uri", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "uri"}, {"name": "data", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "data=None"}, {"name": "json", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "json=None"}, {"name": "params", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "params=None"}, {"name": "headers", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "headers=None"}, {"name": "allow_redirects", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "allow_redirects=None"}, {"name": "timeout", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "timeout=None"}], "doc": "<p><b>DEPRECATED</b> Please use <a href=\"#DELETE%20On%20Session\" class=\"name\">DELETE On Session</a> instead.</p>\n<p>Send a DELETE request on the session object found using the given <span class=\"name\">alias</span></p>\n<p><code>alias</code> that will be used to identify the Session object in the cache</p>\n<p><code>uri</code> to send the DELETE request to</p>\n<p><code>json</code> a value that will be json encoded and sent as request data if data is not specified</p>\n<p><code>headers</code> a dictionary of headers to use with the request</p>\n<p><code>allow_redirects</code> Boolean. Set to True if POST/PUT/DELETE redirect following is allowed.</p>\n<p><code>timeout</code> connection timeout</p>", "shortdoc": "*DEPRECATED* Please use `DELETE On Session` instead.", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/DeprecatedKeywords.py", "lineno": 261}, {"name": "GET", "args": [{"name": "url", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "url"}, {"name": "params", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "params=None"}, {"name": "expected_status", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "expected_status=None"}, {"name": "msg", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "msg=None"}, {"name": "kwargs", "types": [], "defaultValue": null, "kind": "VAR_NAMED", "required": false, "repr": "**kwargs"}], "doc": "<p>Sends a GET request.</p>\n<p>The endpoint used to retrieve the resource is the <code>url</code>, while query string parameters can be passed as string, dictionary (or list of tuples or bytes) through the <code>params</code>.</p>\n<p>By default this keyword fails if a status code with error values is returned in the response, this behavior can be modified using the <code>expected_status</code> and <code>msg</code> parameters, read more about it in <a href=\"#Status%20Should%20Be\" class=\"name\">Status Should Be</a> keyword documentation. In order to disable this implicit assert mechanism you can pass as <code>expected_status</code> the values <code>any</code> or <code>anything</code>.</p>\n<p>Other optional requests arguments can be passed using <code>**kwargs</code> here is a list:</p>\n<table border=\"1\">\n<tr>\n<td><code>data</code></td>\n<td>Dictionary, list of tuples, bytes, or file-like object to send in the body of the request.</td>\n</tr>\n<tr>\n<td><code>json</code></td>\n<td>A JSON serializable Python object to send in the body of the request.</td>\n</tr>\n<tr>\n<td><code>headers</code></td>\n<td>Dictionary of HTTP Headers to send with the request.</td>\n</tr>\n<tr>\n<td><code>cookies</code></td>\n<td>Dict or CookieJar object to send with the request.</td>\n</tr>\n<tr>\n<td><code>files</code></td>\n<td>Dictionary of file-like-objects (or <code>{'name': file-tuple}</code>) for multipart encoding upload.</td>\n</tr>\n<tr>\n<td><code>file-tuple</code></td>\n<td>can be a 2-tuple <code>('filename', fileobj)</code>, 3-tuple <code>('filename', fileobj, 'content_type')</code> or a 4-tuple <code>('filename', fileobj, 'content_type', custom_headers)</code>, where <code>'content-type'</code> is a string defining the content type of the given file and <code>custom_headers</code> a dict-like object containing additional headers to add for the file.</td>\n</tr>\n<tr>\n<td><code>auth</code></td>\n<td>Auth tuple to enable Basic/Digest/Custom HTTP Auth.</td>\n</tr>\n<tr>\n<td><code>timeout</code></td>\n<td>How many seconds to wait for the server to send data before giving up, as a float, or a <code>(connect timeout, read timeout)</code> tuple.</td>\n</tr>\n<tr>\n<td><code>allow_redirects</code></td>\n<td>Boolean. Enable/disable GET/OPTIONS/POST/PUT/PATCH/DELETE/HEAD redirection. Defaults to <code>True</code>.</td>\n</tr>\n<tr>\n<td><code>proxies</code></td>\n<td>Dictionary mapping protocol or protocol and host to the URL of the proxy (e.g. {'http': 'foo.bar:3128', '<a href=\"http://host.name\">http://host.name</a>': 'foo.bar:4012'})</td>\n</tr>\n<tr>\n<td><code>verify</code></td>\n<td>Either a boolean, in which case it controls whether we verify the server's TLS certificate, or a string, in which case it must be a path to a CA bundle to use. Defaults to <code>True</code>. Warning: if a session has been created with <code>verify=False</code> any other requests will not verify the SSL certificate.</td>\n</tr>\n<tr>\n<td><code>stream</code></td>\n<td>if <code>False</code>, the response content will be immediately downloaded.</td>\n</tr>\n<tr>\n<td><code>cert</code></td>\n<td>if String, path to ssl client cert file (.pem). If Tuple, ('cert', 'key') pair.</td>\n</tr>\n</table>\n<p>For more updated and complete information verify the official Requests api documentation: <a href=\"https://requests.readthedocs.io/en/latest/api/\">https://requests.readthedocs.io/en/latest/api/</a></p>", "shortdoc": "Sends a GET request.", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/RequestsKeywords.py", "lineno": 155}, {"name": "Get File For Streaming Upload", "args": [{"name": "path", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "path"}], "doc": "<p>Opens and returns a file descriptor of a specified file to be passed as <code>data</code> parameter to other requests keywords.</p>\n<p>This allows streaming upload of large files without reading them into memory.</p>\n<p>File descriptor is binary mode and read only. Requests keywords will automatically close the file, if used outside this library it's up to the caller to close it.</p>", "shortdoc": "Opens and returns a file descriptor of a specified file to be passed as ``data`` parameter to other requests keywords.", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/RequestsKeywords.py", "lineno": 142}, {"name": "GET On Session", "args": [{"name": "alias", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "alias"}, {"name": "url", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "url"}, {"name": "params", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "params=None"}, {"name": "expected_status", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "expected_status=None"}, {"name": "msg", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "msg=None"}, {"name": "kwargs", "types": [], "defaultValue": null, "kind": "VAR_NAMED", "required": false, "repr": "**kwargs"}], "doc": "<p>Sends a GET request on a previously created HTTP Session.</p>\n<p>Session will be identified using the <code>alias</code> name. The endpoint used to retrieve the resource is the <code>url</code>, while query string parameters can be passed as string, dictionary (or list of tuples or bytes) through the <code>params</code>.</p>\n<p>By default this keyword fails if a status code with error values is returned in the response, this behavior can be modified using the <code>expected_status</code> and <code>msg</code> parameters, read more about it in <a href=\"#Status%20Should%20Be\" class=\"name\">Status Should Be</a> keyword documentation. In order to disable this implicit assert mechanism you can pass as <code>expected_status</code> the values <code>any</code> or <code>anything</code>.</p>\n<p>Other optional requests arguments can be passed using <code>**kwargs</code> see the <a href=\"#GET\" class=\"name\">GET</a> keyword for the complete list.</p>", "shortdoc": "Sends a GET request on a previously created HTTP Session.", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/RequestsOnSessionKeywords.py", "lineno": 10}, {"name": "Get Request", "args": [{"name": "alias", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "alias"}, {"name": "uri", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "uri"}, {"name": "headers", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "headers=None"}, {"name": "data", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "data=None"}, {"name": "json", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "json=None"}, {"name": "params", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "params=None"}, {"name": "allow_redirects", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "allow_redirects=None"}, {"name": "timeout", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "timeout=None"}], "doc": "<p><b>DEPRECATED</b> Please use <a href=\"#GET%20On%20Session\" class=\"name\">GET On Session</a> instead.</p>\n<p>Send a GET request on the session object found using the given <span class=\"name\">alias</span></p>\n<p><code>alias</code> that will be used to identify the Session object in the cache</p>\n<p><code>uri</code> to send the GET request to</p>\n<p><code>params</code> url parameters to append to the uri</p>\n<p><code>headers</code> a dictionary of headers to use with the request</p>\n<p><code>data</code> a dictionary of key-value pairs that will be urlencoded and sent as GET data or binary data that is sent as the raw body content</p>\n<p><code>json</code> a value that will be json encoded and sent as GET data if data is not specified</p>\n<p><code>allow_redirects</code> Boolean. Set to True if POST/PUT/DELETE redirect following is allowed.</p>\n<p><code>timeout</code> connection timeout</p>", "shortdoc": "*DEPRECATED* Please use `GET On Session` instead.", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/DeprecatedKeywords.py", "lineno": 36}, {"name": "HEAD", "args": [{"name": "url", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "url"}, {"name": "expected_status", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "expected_status=None"}, {"name": "msg", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "msg=None"}, {"name": "kwargs", "types": [], "defaultValue": null, "kind": "VAR_NAMED", "required": false, "repr": "**kwargs"}], "doc": "<p>Sends a HEAD request.</p>\n<p>The endpoint used to retrieve the HTTP headers is the <code>url</code>.</p>\n<p><code>allow_redirects</code> parameter is not provided, it will be set to <span class=\"name\">False</span> (as opposed to the default behavior).</p>\n<p>By default this keyword fails if a status code with error values is returned in the response, this behavior can be modified using the <code>expected_status</code> and <code>msg</code> parameters, read more about it in <a href=\"#Status%20Should%20Be\" class=\"name\">Status Should Be</a> keyword documentation. In order to disable this implicit assert mechanism you can pass as <code>expected_status</code> the values <code>any</code> or <code>anything</code>.</p>\n<p>Other optional requests arguments can be passed using <code>**kwargs</code> see the <a href=\"#GET\" class=\"name\">GET</a> keyword for the complete list.</p>", "shortdoc": "Sends a HEAD request.", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/RequestsKeywords.py", "lineno": 249}, {"name": "HEAD On Session", "args": [{"name": "alias", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "alias"}, {"name": "url", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "url"}, {"name": "expected_status", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "expected_status=None"}, {"name": "msg", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "msg=None"}, {"name": "kwargs", "types": [], "defaultValue": null, "kind": "VAR_NAMED", "required": false, "repr": "**kwargs"}], "doc": "<p>Sends a HEAD request on a previously created HTTP Session.</p>\n<p>Session will be identified using the <code>alias</code> name. The endpoint used to retrieve the HTTP headers is the <code>url</code>.</p>\n<p><code>allow_redirects</code> parameter is not provided, it will be set to <span class=\"name\">False</span> (as opposed to the default behavior).</p>\n<p>By default this keyword fails if a status code with error values is returned in the response, this behavior can be modified using the <code>expected_status</code> and <code>msg</code> parameters, read more about it in <a href=\"#Status%20Should%20Be\" class=\"name\">Status Should Be</a> keyword documentation. In order to disable this implicit assert mechanism you can pass as <code>expected_status</code> the values <code>any</code> or <code>anything</code>.</p>\n<p>Other optional requests arguments can be passed using <code>**kwargs</code> see the <a href=\"#GET\" class=\"name\">GET</a> keyword for the complete list.</p>", "shortdoc": "Sends a HEAD request on a previously created HTTP Session.", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/RequestsOnSessionKeywords.py", "lineno": 143}, {"name": "Head Request", "args": [{"name": "alias", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "alias"}, {"name": "uri", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "uri"}, {"name": "headers", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "headers=None"}, {"name": "allow_redirects", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "allow_redirects=None"}, {"name": "timeout", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "timeout=None"}], "doc": "<p><b>DEPRECATED</b> Please use <a href=\"#HEAD%20On%20Session\" class=\"name\">HEAD On Session</a> instead.</p>\n<p>Send a HEAD request on the session object found using the given <span class=\"name\">alias</span></p>\n<p><code>alias</code> that will be used to identify the Session object in the cache</p>\n<p><code>uri</code> to send the HEAD request to</p>\n<p><code>allow_redirects</code> Boolean. Set to True if POST/PUT/DELETE redirect following is allowed.</p>\n<p><code>headers</code> a dictionary of headers to use with the request</p>\n<p><code>timeout</code> connection timeout</p>", "shortdoc": "*DEPRECATED* Please use `HEAD On Session` instead.", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/DeprecatedKeywords.py", "lineno": 308}, {"name": "OPTIONS", "args": [{"name": "url", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "url"}, {"name": "expected_status", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "expected_status=None"}, {"name": "msg", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "msg=None"}, {"name": "kwargs", "types": [], "defaultValue": null, "kind": "VAR_NAMED", "required": false, "repr": "**kwargs"}], "doc": "<p>Sends a OPTIONS request.</p>\n<p>The endpoint used to retrieve the resource is the <code>url</code>.</p>\n<p>By default this keyword fails if a status code with error values is returned in the response, this behavior can be modified using the <code>expected_status</code> and <code>msg</code> parameters, read more about it in <a href=\"#Status%20Should%20Be\" class=\"name\">Status Should Be</a> keyword documentation. In order to disable this implicit assert mechanism you can pass as <code>expected_status</code> the values <code>any</code> or <code>anything</code>.</p>\n<p>Other optional requests arguments can be passed using <code>**kwargs</code> see the <a href=\"#GET\" class=\"name\">GET</a> keyword for the complete list.</p>", "shortdoc": "Sends a OPTIONS request.", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/RequestsKeywords.py", "lineno": 320}, {"name": "OPTIONS On Session", "args": [{"name": "alias", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "alias"}, {"name": "url", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "url"}, {"name": "expected_status", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "expected_status=None"}, {"name": "msg", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "msg=None"}, {"name": "kwargs", "types": [], "defaultValue": null, "kind": "VAR_NAMED", "required": false, "repr": "**kwargs"}], "doc": "<p>Sends a OPTIONS request on a previously created HTTP Session.</p>\n<p>Session will be identified using the <code>alias</code> name. The endpoint used to retrieve the resource is the <code>url</code>.</p>\n<p>By default this keyword fails if a status code with error values is returned in the response, this behavior can be modified using the <code>expected_status</code> and <code>msg</code> parameters, read more about it in <a href=\"#Status%20Should%20Be\" class=\"name\">Status Should Be</a> keyword documentation. In order to disable this implicit assert mechanism you can pass as <code>expected_status</code> the values <code>any</code> or <code>anything</code>.</p>\n<p>Other optional requests arguments can be passed using <code>**kwargs</code> see the <a href=\"#GET\" class=\"name\">GET</a> keyword for the complete list.</p>", "shortdoc": "Sends a OPTIONS request on a previously created HTTP Session.", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/RequestsOnSessionKeywords.py", "lineno": 169}, {"name": "Options Request", "args": [{"name": "alias", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "alias"}, {"name": "uri", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "uri"}, {"name": "headers", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "headers=None"}, {"name": "allow_redirects", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "allow_redirects=None"}, {"name": "timeout", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "timeout=None"}], "doc": "<p><b>DEPRECATED</b> Please use <a href=\"#OPTIONS%20On%20Session\" class=\"name\">OPTIONS On Session</a> instead.</p>\n<p>Send an OPTIONS request on the session object found using the given <span class=\"name\">alias</span></p>\n<p><code>alias</code> that will be used to identify the Session object in the cache</p>\n<p><code>uri</code> to send the OPTIONS request to</p>\n<p><code>allow_redirects</code> Boolean. Set to True if POST/PUT/DELETE redirect following is allowed.</p>\n<p><code>headers</code> a dictionary of headers to use with the request</p>\n<p><code>timeout</code> connection timeout</p>", "shortdoc": "*DEPRECATED* Please use `OPTIONS On Session` instead.", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/DeprecatedKeywords.py", "lineno": 344}, {"name": "PATCH", "args": [{"name": "url", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "url"}, {"name": "data", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "data=None"}, {"name": "json", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "json=None"}, {"name": "expected_status", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "expected_status=None"}, {"name": "msg", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "msg=None"}, {"name": "kwargs", "types": [], "defaultValue": null, "kind": "VAR_NAMED", "required": false, "repr": "**kwargs"}], "doc": "<p>Sends a PUT request.</p>\n<p>The endpoint used to send the request is the <code>url</code> parameter, while its body can be passed using <code>data</code> or <code>json</code> parameters.</p>\n<p><code>data</code> can be a dictionary, list of tuples, bytes, or file-like object. If you want to pass a json body pass a dictionary as <code>json</code> parameter.</p>\n<p>By default this keyword fails if a status code with error values is returned in the response, this behavior can be modified using the <code>expected_status</code> and <code>msg</code> parameters, read more about it in <a href=\"#Status%20Should%20Be\" class=\"name\">Status Should Be</a> keyword documentation. In order to disable this implicit assert mechanism you can pass as <code>expected_status</code> the values <code>any</code> or <code>anything</code>.</p>\n<p>Other optional requests arguments can be passed using <code>**kwargs</code> see the <a href=\"#GET\" class=\"name\">GET</a> keyword for the complete list.</p>", "shortdoc": "Sends a PUT request.", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/RequestsKeywords.py", "lineno": 273}, {"name": "PATCH On Session", "args": [{"name": "alias", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "alias"}, {"name": "url", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "url"}, {"name": "data", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "data=None"}, {"name": "json", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "json=None"}, {"name": "expected_status", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "expected_status=None"}, {"name": "msg", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "msg=None"}, {"name": "kwargs", "types": [], "defaultValue": null, "kind": "VAR_NAMED", "required": false, "repr": "**kwargs"}], "doc": "<p>Sends a PATCH request on a previously created HTTP Session.</p>\n<p>Session will be identified using the <code>alias</code> name. The endpoint used to send the request is the <code>url</code> parameter, while its body can be passed using <code>data</code> or <code>json</code> parameters.</p>\n<p><code>data</code> can be a dictionary, list of tuples, bytes, or file-like object. If you want to pass a json body pass a dictionary as <code>json</code> parameter.</p>\n<p>By default this keyword fails if a status code with error values is returned in the response, this behavior can be modified using the <code>expected_status</code> and <code>msg</code> parameters, read more about it in <a href=\"#Status%20Should%20Be\" class=\"name\">Status Should Be</a> keyword documentation. In order to disable this implicit assert mechanism you can pass as <code>expected_status</code> the values <code>any</code> or <code>anything</code>.</p>\n<p>Other optional requests arguments can be passed using <code>**kwargs</code> see the <a href=\"#GET\" class=\"name\">GET</a> keyword for the complete list.</p>", "shortdoc": "Sends a PATCH request on a previously created HTTP Session.", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/RequestsOnSessionKeywords.py", "lineno": 64}, {"name": "Patch Request", "args": [{"name": "alias", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "alias"}, {"name": "uri", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "uri"}, {"name": "data", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "data=None"}, {"name": "json", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "json=None"}, {"name": "params", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "params=None"}, {"name": "headers", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "headers=None"}, {"name": "files", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "files=None"}, {"name": "allow_redirects", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "allow_redirects=None"}, {"name": "timeout", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "timeout=None"}], "doc": "<p><b>DEPRECATED</b> Please use <a href=\"#PATCH%20On%20Session\" class=\"name\">PATCH On Session</a> instead.</p>\n<p>Send a PATCH request on the session object found using the given <span class=\"name\">alias</span></p>\n<p><code>alias</code> that will be used to identify the Session object in the cache</p>\n<p><code>uri</code> to send the PATCH request to</p>\n<p><code>data</code> a dictionary of key-value pairs that will be urlencoded and sent as PATCH data or binary data that is sent as the raw body content or file descriptor retrieved by Get File For Streaming Upload</p>\n<p><code>json</code> a value that will be json encoded and sent as PATCH data if data is not specified</p>\n<p><code>headers</code> a dictionary of headers to use with the request</p>\n<p><code>files</code> a dictionary of file names containing file data to PATCH to the server</p>\n<p><code>allow_redirects</code> Boolean. Set to True if POST/PUT/DELETE redirect following is allowed.</p>\n<p><code>params</code> url parameters to append to the uri</p>\n<p><code>timeout</code> connection timeout</p>", "shortdoc": "*DEPRECATED* Please use `PATCH On Session` instead.", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/DeprecatedKeywords.py", "lineno": 147}, {"name": "POST", "args": [{"name": "url", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "url"}, {"name": "data", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "data=None"}, {"name": "json", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "json=None"}, {"name": "expected_status", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "expected_status=None"}, {"name": "msg", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "msg=None"}, {"name": "kwargs", "types": [], "defaultValue": null, "kind": "VAR_NAMED", "required": false, "repr": "**kwargs"}], "doc": "<p>Sends a POST request.</p>\n<p>The endpoint used to send the request is the <code>url</code> parameter, while its body can be passed using <code>data</code> or <code>json</code> parameters.</p>\n<p><code>data</code> can be a dictionary, list of tuples, bytes, or file-like object. If you want to pass a json body pass a dictionary as <code>json</code> parameter.</p>\n<p>By default this keyword fails if a status code with error values is returned in the response, this behavior can be modified using the <code>expected_status</code> and <code>msg</code> parameters, read more about it in <a href=\"#Status%20Should%20Be\" class=\"name\">Status Should Be</a> keyword documentation. In order to disable this implicit assert mechanism you can pass as <code>expected_status</code> the values <code>any</code> or <code>anything</code>.</p>\n<p>Other optional requests arguments can be passed using <code>**kwargs</code> see the <a href=\"#GET\" class=\"name\">GET</a> keyword for the complete list.</p>", "shortdoc": "Sends a POST request.", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/RequestsKeywords.py", "lineno": 196}, {"name": "POST On Session", "args": [{"name": "alias", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "alias"}, {"name": "url", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "url"}, {"name": "data", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "data=None"}, {"name": "json", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "json=None"}, {"name": "expected_status", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "expected_status=None"}, {"name": "msg", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "msg=None"}, {"name": "kwargs", "types": [], "defaultValue": null, "kind": "VAR_NAMED", "required": false, "repr": "**kwargs"}], "doc": "<p>Sends a POST request on a previously created HTTP Session.</p>\n<p>Session will be identified using the <code>alias</code> name. The endpoint used to send the request is the <code>url</code> parameter, while its body can be passed using <code>data</code> or <code>json</code> parameters.</p>\n<p><code>data</code> can be a dictionary, list of tuples, bytes, or file-like object. If you want to pass a json body pass a dictionary as <code>json</code> parameter.</p>\n<p>By default this keyword fails if a status code with error values is returned in the response, this behavior can be modified using the <code>expected_status</code> and <code>msg</code> parameters, read more about it in <a href=\"#Status%20Should%20Be\" class=\"name\">Status Should Be</a> keyword documentation. In order to disable this implicit assert mechanism you can pass as <code>expected_status</code> the values <code>any</code> or <code>anything</code>.</p>\n<p>Other optional requests arguments can be passed using <code>**kwargs</code> see the <a href=\"#GET\" class=\"name\">GET</a> keyword for the complete list.</p>", "shortdoc": "Sends a POST request on a previously created HTTP Session.", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/RequestsOnSessionKeywords.py", "lineno": 36}, {"name": "Post Request", "args": [{"name": "alias", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "alias"}, {"name": "uri", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "uri"}, {"name": "data", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "data=None"}, {"name": "json", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "json=None"}, {"name": "params", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "params=None"}, {"name": "headers", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "headers=None"}, {"name": "files", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "files=None"}, {"name": "allow_redirects", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "allow_redirects=None"}, {"name": "timeout", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "timeout=None"}], "doc": "<p><b>DEPRECATED</b> Please use <a href=\"#POST%20On%20Session\" class=\"name\">POST On Session</a> instead.</p>\n<p>Send a POST request on the session object found using the given <span class=\"name\">alias</span></p>\n<p><code>alias</code> that will be used to identify the Session object in the cache</p>\n<p><code>uri</code> to send the POST request to</p>\n<p><code>data</code> 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 or passed as such for multipart form data if <code>files</code> is also defined or file descriptor retrieved by Get File For Streaming Upload</p>\n<p><code>json</code> a value that will be json encoded and sent as POST data if files or data is not specified</p>\n<p><code>params</code> url parameters to append to the uri</p>\n<p><code>headers</code> a dictionary of headers to use with the request</p>\n<p><code>files</code> a dictionary of file names containing file data to POST to the server</p>\n<p><code>allow_redirects</code> Boolean. Set to True if POST/PUT/DELETE redirect following is allowed.</p>\n<p><code>timeout</code> connection timeout</p>", "shortdoc": "*DEPRECATED* Please use `POST On Session` instead.", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/DeprecatedKeywords.py", "lineno": 88}, {"name": "PUT", "args": [{"name": "url", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "url"}, {"name": "data", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "data=None"}, {"name": "json", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "json=None"}, {"name": "expected_status", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "expected_status=None"}, {"name": "msg", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "msg=None"}, {"name": "kwargs", "types": [], "defaultValue": null, "kind": "VAR_NAMED", "required": false, "repr": "**kwargs"}], "doc": "<p>Sends a PUT request.</p>\n<p>The endpoint used to send the request is the <code>url</code> parameter, while its body can be passed using <code>data</code> or <code>json</code> parameters.</p>\n<p><code>data</code> can be a dictionary, list of tuples, bytes, or file-like object. If you want to pass a json body pass a dictionary as <code>json</code> parameter.</p>\n<p>By default this keyword fails if a status code with error values is returned in the response, this behavior can be modified using the <code>expected_status</code> and <code>msg</code> parameters, read more about it in <a href=\"#Status%20Should%20Be\" class=\"name\">Status Should Be</a> keyword documentation. In order to disable this implicit assert mechanism you can pass as <code>expected_status</code> the values <code>any</code> or <code>anything</code>.</p>\n<p>Other optional requests arguments can be passed using <code>**kwargs</code> see the <a href=\"#GET\" class=\"name\">GET</a> keyword for the complete list.</p>", "shortdoc": "Sends a PUT request.", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/RequestsKeywords.py", "lineno": 222}, {"name": "PUT On Session", "args": [{"name": "alias", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "alias"}, {"name": "url", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "url"}, {"name": "data", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "data=None"}, {"name": "json", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "json=None"}, {"name": "expected_status", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "expected_status=None"}, {"name": "msg", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "msg=None"}, {"name": "kwargs", "types": [], "defaultValue": null, "kind": "VAR_NAMED", "required": false, "repr": "**kwargs"}], "doc": "<p>Sends a PUT request on a previously created HTTP Session.</p>\n<p>Session will be identified using the <code>alias</code> name. The endpoint used to send the request is the <code>url</code> parameter, while its body can be passed using <code>data</code> or <code>json</code> parameters.</p>\n<p><code>data</code> can be a dictionary, list of tuples, bytes, or file-like object. If you want to pass a json body pass a dictionary as <code>json</code> parameter.</p>\n<p>By default this keyword fails if a status code with error values is returned in the response, this behavior can be modified using the <code>expected_status</code> and <code>msg</code> parameters, read more about it in <a href=\"#Status%20Should%20Be\" class=\"name\">Status Should Be</a> keyword documentation. In order to disable this implicit assert mechanism you can pass as <code>expected_status</code> the values <code>any</code> or <code>anything</code>.</p>\n<p>Other optional requests arguments can be passed using <code>**kwargs</code> see the <a href=\"#GET\" class=\"name\">GET</a> keyword for the complete list.</p>", "shortdoc": "Sends a PUT request on a previously created HTTP Session.", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/RequestsOnSessionKeywords.py", "lineno": 92}, {"name": "Put Request", "args": [{"name": "alias", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "alias"}, {"name": "uri", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "uri"}, {"name": "data", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "data=None"}, {"name": "json", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "json=None"}, {"name": "params", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "params=None"}, {"name": "files", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "files=None"}, {"name": "headers", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "headers=None"}, {"name": "allow_redirects", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "allow_redirects=None"}, {"name": "timeout", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "timeout=None"}], "doc": "<p><b>DEPRECATED</b> Please use <a href=\"#PUT%20On%20Session\" class=\"name\">PUT On Session</a> instead.</p>\n<p>Send a PUT request on the session object found using the given <span class=\"name\">alias</span></p>\n<p><code>alias</code> that will be used to identify the Session object in the cache</p>\n<p><code>uri</code> to send the PUT request to</p>\n<p><code>data</code> a dictionary of key-value pairs that will be urlencoded and sent as PUT data or binary data that is sent as the raw body content or file descriptor retrieved by Get File For Streaming Upload</p>\n<p><code>json</code> a value that will be json encoded and sent as PUT data if data is not specified</p>\n<p><code>headers</code> a dictionary of headers to use with the request</p>\n<p><code>allow_redirects</code> Boolean. Set to True if POST/PUT/DELETE redirect following is allowed.</p>\n<p><code>params</code> url parameters to append to the uri</p>\n<p><code>timeout</code> connection timeout</p>", "shortdoc": "*DEPRECATED* Please use `PUT On Session` instead.", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/DeprecatedKeywords.py", "lineno": 205}, {"name": "Request Should Be Successful", "args": [{"name": "response", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "response=None"}], "doc": "<p>Fails if response status code is a client or server error (4xx, 5xx).</p>\n<p><code>response</code> is the output of other requests keywords like <a href=\"#GET%20On%20Session\" class=\"name\">GET On Session</a>. If omitted the last response will be used.</p>\n<p>In case of failure an HTTPError will be automatically raised.</p>\n<p>For a more versatile assert keyword see <a href=\"#Status%20Should%20Be\" class=\"name\">Status Should Be</a>.</p>", "shortdoc": "Fails if response status code is a client or server error (4xx, 5xx).", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/RequestsKeywords.py", "lineno": 125}, {"name": "Session Exists", "args": [{"name": "alias", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "alias"}], "doc": "<p>Return True if the session has been already created</p>\n<p><code>alias</code> that has been used to identify the Session object in the cache</p>", "shortdoc": "Return True if the session has been already created", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/SessionKeywords.py", "lineno": 532}, {"name": "Status Should Be", "args": [{"name": "expected_status", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "expected_status"}, {"name": "response", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "response=None"}, {"name": "msg", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "msg=None"}], "doc": "<p>Fails if response status code is different than the expected.</p>\n<p><code>expected_status</code> could be the code number as an integer or as string. But it could also be a named status code like 'ok', 'created', 'accepted' or 'bad request', 'not found' etc.</p>\n<p><code>response</code> is the output of other requests keywords like <a href=\"#GET\" class=\"name\">GET</a> or <a href=\"#GET%20On%20Session\" class=\"name\">GET On Session</a>. If omitted the last response will be used.</p>\n<p>In case of failure an HTTPError will be automatically raised. A custom failure message <code>msg</code> can be added like in built-in keywords.</p>\n<p>New requests keywords like <a href=\"#GET\" class=\"name\">GET</a> or <a href=\"#GET%20On%20Session\" class=\"name\">GET On Session</a> (starting from 0.8 version) already have an implicit assert mechanism that, by default, verifies the response status code. <a href=\"#Status%20Should%20Be\" class=\"name\">Status Should Be</a> keyword can be useful when you disable implicit assert using <code>expected_status=anything</code>.</p>\n<p>For example when you have a nested keyword that is used for both OK and ERROR responses:</p>\n<pre>\n  <b>*</b> Test Cases <b>*</b>\n\n  Test Get Request And Make Sure Is A 404 Response\n      ${resp}=            GET Custom Keyword That Returns OK or ERROR Response  case=notfound\n      Status Should Be    404    ${resp}\n      Should Be Equal As Strings  NOT FOUND  ${resp.reason}\n\n  Test Get Request And Make Sure Is OK\n      ${resp}=            GET Custom Keyword That Returns OK or ERROR Response  case=pass\n      Status Should Be    200    ${resp}\n      Should Be Equal As Strings  OK  ${resp.reason}\n\n  <b>*</b> Keywords <b>*</b>\n\n  GET Custom Keyword That Returns OK or ERROR Response\n  [Arguments]  $case\n       [...]\n      IF $case == notfound\n          $resp=     GET [...] expected_status=Anything\n          [Return]   $resp\n      ELSE\n       [...]\n</pre>", "shortdoc": "Fails if response status code is different than the expected.", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/RequestsKeywords.py", "lineno": 77}, {"name": "To Json", "args": [{"name": "content", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "content"}, {"name": "pretty_print", "types": [], "defaultValue": "False", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "pretty_print=False"}], "doc": "<p><b>DEPRECATED</b> Please use ${resp.json()} instead. Have a look at the improved HTML output as pretty printing replacement.</p>\n<p>Convert a string to a JSON object</p>\n<p><code>content</code> String content to convert into JSON</p>\n<p><code>pretty_print</code> If defined, will output JSON is pretty print format</p>", "shortdoc": "*DEPRECATED* Please use ${resp.json()} instead. Have a look at the improved HTML output as pretty printing replacement.", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/DeprecatedKeywords.py", "lineno": 15}, {"name": "Update Session", "args": [{"name": "alias", "types": [], "defaultValue": null, "kind": "POSITIONAL_OR_NAMED", "required": true, "repr": "alias"}, {"name": "headers", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "headers=None"}, {"name": "cookies", "types": [], "defaultValue": "None", "kind": "POSITIONAL_OR_NAMED", "required": false, "repr": "cookies=None"}], "doc": "<p>Updates HTTP Session Headers and Cookies.</p>\n<p>Session will be identified using the <code>alias</code> name. Dictionary of <code>headers</code> and <code>cookies</code> to be updated and merged into session data.</p>", "shortdoc": "Updates HTTP Session Headers and Cookies.", "tags": [], "source": "/Users/luca/src/robotframework/robotframework-requests/src/RequestsLibrary/SessionKeywords.py", "lineno": 552}], "dataTypes": {"enums": [], "typedDicts": []}}
 </script>
 <title></title>
 </head>
diff --git a/src/RequestsLibrary/__init__.py b/src/RequestsLibrary/__init__.py
index c986205..d3ea1f6 100644
--- a/src/RequestsLibrary/__init__.py
+++ b/src/RequestsLibrary/__init__.py
@@ -94,6 +94,30 @@ class RequestsLibrary(RequestsOnSessionKeywords, DeprecatedKeywords):
         | status_code | Integer Code of responded HTTP Status, e.g. 404 or 200. |
         | text    | Content of the response, in unicode. If ``response.encoding`` is ``None``, encoding will be guessed using chardet. The encoding of the response content is determined based solely on HTTP headers, following RFC 2616 to the letter. If you can take advantage of non-HTTP knowledge to make a better guess at the encoding, you should set ``response.encoding`` appropriately before accessing this property. |
         | url     | Final URL location of Response. |
+
+        = POST a Multipart-Encoded File =
+
+        RequestsLibrary makes it simple to upload Multipart-encoded files, but in order to make sure that the
+        Python Library provides automatically the right ``Content-Length`` and ``multipart/form-data; boundary=...``
+        headers you SHOULD NOT provide those headers manually, use the keyword
+        `Get File For Streaming Upload` instead that opens the files in binary mode.
+
+        Below an example of multiple file sent over a single POST:
+
+        |   Test Post Multiple Files
+        |       ${file_1}=  Get File For Streaming Upload  files/randombytes.bin
+        |       ${file_2}=  Get File For Streaming Upload  files/randombytes.bin
+        |       ${files}=   Create Dictionary  randombytes1  ${file_1}  randombytes2  ${file_2}
+        |
+        |       ${resp}=    POST  https://someurl  files=${files}
+
+        You can find a working test example in `atests/test_post_multipart.robot`.
+
+        For a complete reference verify the official Requests documentation:
+
+          - https://2.python-requests.org/en/master/user/quickstart/#post-a-multipart-encoded-file
+          - https://2.python-requests.org/en/master/user/advanced/#post-multiple-multipart-encoded-files
+
         """
     __version__ = VERSION
     ROBOT_LIBRARY_SCOPE = 'GLOBAL'


Test patch:
diff --git a/atests/test_post_multipart.robot b/atests/test_post_multipart.robot
index 32b5c7c..a767549 100644
--- a/atests/test_post_multipart.robot
+++ b/atests/test_post_multipart.robot
@@ -17,4 +17,6 @@ Test Post On Session Multipart
     ${resp}=    POST On Session  ${GLOBAL_SESSION}   /anything  files=${files}
 
     Should Contain  ${resp.json()}[headers][Content-Type]  multipart/form-data; boundary=
+    Should Contain  ${resp.json()}[headers][Content-Length]  480
     Should Contain  ${resp.json()}[files]  randombytes1
+    Should Contain  ${resp.json()}[files]  randombytes2
diff --git a/atests/testcase.robot b/atests/testcase.robot
index d8f2016..33ac366 100644
--- a/atests/testcase.robot
+++ b/atests/testcase.robot
@@ -218,82 +218,33 @@ Post Request With File
 
 Post Request With Data and File
     [Tags]    post
-    Create Session    httpbin    http://httpbin.org
     &{data}=    Create Dictionary    name=mallikarjunarao    surname=kosuri
     Create File    foobar.txt    content=foobar
     ${file_data}=    Get File    foobar.txt
     &{files}=    Create Dictionary    file=${file_data}
-    ${resp}=    Post Request    httpbin    /post    files=${files}    data=${data}
+    ${resp}=    Post Request    ${test_session}    /anything    files=${files}    data=${data}
     Should Be Equal As Strings    ${resp.status_code}    200
 
 Put Requests
     [Tags]  put
-    Create Session  httpbin  http://httpbin.org
     &{data}=  Create Dictionary  name=bulkan  surname=evcimen
     &{headers}=  Create Dictionary  Content-Type=application/x-www-form-urlencoded
-    ${resp}=  Put Request  httpbin  /put  data=${data}  headers=${headers}
+    ${resp}=  Put Request  ${test_session}  /anything  data=${data}  headers=${headers}
     Dictionary Should Contain Value  ${resp.json()['form']}  bulkan
     Dictionary Should Contain Value  ${resp.json()['form']}  evcimen
 
-Head Request
-    [Tags]  head
-    Create Session  httpbin  http://httpbin.org
-    ${resp}=  Head Request  httpbin  /headers
-    Should Be Equal As Strings  ${resp.status_code}  200
-
-Options Request
-    [Tags]  options
-    Create Session  httpbin  http://httpbin.org
-    ${resp}=  Options Request  httpbin  /headers
-    Should Be Equal As Strings  ${resp.status_code}  200
-    Dictionary Should Contain Key  ${resp.headers}  allow
-
-Delete Request With URL Params
-    [Tags]  delete
-    Create Session  httpbin  http://httpbin.org
-    &{params}=   Create Dictionary   key=value     key2=value2
-    ${resp}=  Delete Request  httpbin  /delete		${params}
-    Should Be Equal As Strings  ${resp.status_code}  200
-
-Delete Request With No Data
-    [Tags]  delete
-    Create Session  httpbin  http://httpbin.org
-    ${resp}=  Delete Request  httpbin  /delete
-    Should Be Equal As Strings  ${resp.status_code}  200
-
-Delete Request With Data
-    [Tags]  delete
-    Create Session  httpbin  http://httpbin.org    debug=3
-    &{data}=  Create Dictionary  name=bulkan  surname=evcimen
-    ${resp}=  Delete Request  httpbin  /delete  data=${data}
-    Should Be Equal As Strings  ${resp.status_code}  200
-    Log  ${resp.content}
-    Comment  Dictionary Should Contain Value  ${resp.json()['data']}  bulkan
-    Comment  Dictionary Should Contain Value  ${resp.json()['data']}  evcimen
-
-Delete Requests with Json Data
-    [Tags]  delete
-    Create Session  httpbin     http://httpbin.org
-    &{data}=    Create Dictionary   latitude=30.496346  longitude=-87.640356
-    ${resp}=     Delete Request  httpbin  /delete    json=${data}
-    Should Be Equal As Strings  ${resp.status_code}  200
-    ${jsondata}=  Set Variable  ${resp.json()}
-    Should Be Equal     ${jsondata['json']}     ${data}
-
 Patch Requests
     [Tags]    patch
-    Create Session    httpbin    http://httpbin.org
     &{data}=    Create Dictionary    name=bulkan    surname=evcimen
     &{headers}=    Create Dictionary    Content-Type=application/x-www-form-urlencoded
-    ${resp}=    Patch Request    httpbin    /patch    data=${data}    headers=${headers}
+    ${resp}=    Patch Request    ${test_session}    /anything    data=${data}    headers=${headers}
     Dictionary Should Contain Value    ${resp.json()['form']}    bulkan
     Dictionary Should Contain Value    ${resp.json()['form']}    evcimen
 
 Patch Requests with Json Data
     [Tags]  patch
-    Create Session  httpbin     http://httpbin.org
     &{data}=    Create Dictionary   latitude=30.496346  longitude=-87.640356
-    ${resp}=     Patch Request  httpbin  /patch    json=${data}
+    ${resp}=     Patch Request  ${test_session}  /anything    json=${data}
     Should Be Equal As Strings  ${resp.status_code}  200
     ${jsondata}=  Set Variable  ${resp.json()}
     Should Be Equal     ${jsondata['json']}     ${data}
diff --git a/tests-report/.gitkeep b/tests-report/.gitkeep
new file mode 100644
index 0000000..e69de29