diff --git a/atests/test_requests.robot b/atests/test_requests.robot index 2ed1d2c..c7703a9 100644 --- a/atests/test_requests.robot +++ b/atests/test_requests.robot @@ -282,3 +282,21 @@ Trace Request [Tags] trace ${resp}= TRACE ${HTTP_LOCAL_SERVER}/anything Status Should Be OK ${resp} + +Get request with get response + [Tags] get + GET ${HTTP_LOCAL_SERVER}/anything + Status Should Be OK + ${resp}= Get response + Should be equal ${resp.status_code} ${200} + Should be equal ${resp.json()}[url] ${HTTP_LOCAL_SERVER}/anything + +Post request with get response + [Tags] post + ${data}= Create dictionary key1=one key2=two key3=3 + POST ${HTTP_LOCAL_SERVER}/anything json=${data} + Status Should Be OK + ${resp}= Get response + Should be equal ${resp.status_code} ${200} + Should be equal ${resp.json()}[url] ${HTTP_LOCAL_SERVER}/anything + Should be equal ${resp.json()}[json] ${data} diff --git a/src/RequestsLibrary/RequestsKeywords.py b/src/RequestsLibrary/RequestsKeywords.py index 4760ffc..8fe30ee 100644 --- a/src/RequestsLibrary/RequestsKeywords.py +++ b/src/RequestsLibrary/RequestsKeywords.py @@ -152,6 +152,13 @@ def get_file_for_streaming_upload(path): """ return open(path, "rb") + @keyword("Get response") + def get_response(self) -> requests.Response: + """ + Returns the response from the last request. + """ + return self.last_response + @keyword("GET") @warn_if_equal_symbol_in_url_session_less def session_less_get( diff --git a/utests/test_RequestsKeywords.py b/utests/test_RequestsKeywords.py index 65b0bda..4eae783 100644 --- a/utests/test_RequestsKeywords.py +++ b/utests/test_RequestsKeywords.py @@ -1,7 +1,3 @@ -import sys - -import pytest - from RequestsLibrary import RequestsLibrary from utests import mock @@ -69,14 +65,12 @@ def test_merge_url_with_session_url_path_slash_and_uri_endpoint(): assert url == 'http://www.domain.com/path/endpoint' -@pytest.mark.skipif(sys.version_info < (3, 0), reason="different urljoin handling of double slash") def test_merge_url_with_session2trailing_and_endpoint(): session, keywords = build_mocked_session_keywords('http://www.domain.com//') url = keywords._merge_url(session, 'endpoint') assert url == 'http://www.domain.com/endpoint' -@pytest.mark.skipif(sys.version_info < (3, 0), reason="different urljoin handling of double slash") def test_merge_url_with_session_and_slash_endpoint_2trailing(): session, keywords = build_mocked_session_keywords('http://www.domain.com') url = keywords._merge_url(session, '/endpoint//') diff --git a/utests/test_SessionKeywords.py b/utests/test_SessionKeywords.py index a4b4255..6ad198c 100644 --- a/utests/test_SessionKeywords.py +++ b/utests/test_SessionKeywords.py @@ -1,4 +1,3 @@ -import sys import unittest from RequestsLibrary import compat @@ -13,14 +12,12 @@ def test_session_class_extends_keywords_class(): class TestUrlLibWarnings(unittest.TestCase): - @unittest.skipIf(sys.version_info < (3, 2), "python version doesn't support assertWarns") def test_get_default_retry_method_list_not_raise_warning(self): with self.assertRaises(AssertionError): with self.assertWarns(DeprecationWarning): DEFAULT_RETRY_METHOD_LIST = compat.RetryAdapter.get_default_allowed_methods() assert "GET" in DEFAULT_RETRY_METHOD_LIST - @unittest.skipIf(sys.version_info < (3, 2), "python version doesn't support assertWarns") def test_init_retry_adapter_not_raise_warning(self): with self.assertRaises(AssertionError): with self.assertWarns(DeprecationWarning): @@ -29,7 +26,6 @@ def test_init_retry_adapter_not_raise_warning(self): status_forcelist=[500], allowed_methods=['GET']) - @unittest.skipIf(sys.version_info < (3, 2), "python version doesn't support assertWarns") def test_create_session_retry_not_raise_warning(self): keywords = SessionKeywords() with self.assertRaises(AssertionError):