diff options
author | Ilia Abashin <abashinos@gmail.com> | 2017-08-15 17:58:28 +0300 |
---|---|---|
committer | Ilia Abashin <abashinos@gmail.com> | 2017-08-15 18:00:32 +0300 |
commit | 798f7292513d08e0120e52775f0a4952adc7cef3 (patch) | |
tree | 3913f23ae4393ebc6073ff9a72e5ad00ffc3a544 /app/test/fetch/api_fetch/test_api_access.py | |
parent | bdfb12fb1f24987be56f84fc3b41ffedea5f70f3 (diff) |
Fixed api_access unit tests
Fixed issues caused by migration to 'requests' library
Change-Id: I4b77c9b5be8149639ae287c18055382f3892fff4
Signed-off-by: Ilia Abashin <abashinos@gmail.com>
Diffstat (limited to 'app/test/fetch/api_fetch/test_api_access.py')
-rw-r--r-- | app/test/fetch/api_fetch/test_api_access.py | 53 |
1 files changed, 34 insertions, 19 deletions
diff --git a/app/test/fetch/api_fetch/test_api_access.py b/app/test/fetch/api_fetch/test_api_access.py index e4767b7..f51c07b 100644 --- a/app/test/fetch/api_fetch/test_api_access.py +++ b/app/test/fetch/api_fetch/test_api_access.py @@ -7,7 +7,10 @@ # which accompanies this distribution, and is available at # # http://www.apache.org/licenses/LICENSE-2.0 # ############################################################################### -from unittest.mock import patch, MagicMock +from unittest.mock import patch, MagicMock, Mock + +import requests + from discover.fetchers.api.api_access import ApiAccess from test.fetch.api_fetch.test_data.api_access import * from test.fetch.test_fetch import TestFetch @@ -20,6 +23,8 @@ class TestApiAccess(TestFetch): self.configure_environment() self.api_access = ApiAccess() self.set_regions_for_fetcher(self.api_access) + self.response = MagicMock() + self.response.status_code = requests.codes.ok def test_parse_time_without_dot_in_time(self): time = self.api_access.parse_time(TIME_WITHOUT_DOT) @@ -44,33 +49,38 @@ class TestApiAccess(TestFetch): self.assertEqual(token, None, "Can't get None when the token doesn't " + "exist in tokens") - @patch("httplib2.Http.request") + @patch("requests.post") def test_v2_auth(self, mock_request): self.api_access.get_existing_token = MagicMock(return_value=None) + self.response.json = Mock(return_value=CORRECT_AUTH_CONTENT) # mock authentication info from OpenStack Api - mock_request.return_value = (RESPONSE, CORRECT_AUTH_CONTENT) + mock_request.return_value = self.response token_details = self.api_access.v2_auth(TEST_PROJECT, TEST_HEADER, TEST_BODY) self.assertNotEqual(token_details, None, "Can't get the token details") - @patch("httplib2.Http.request") + @patch("requests.post") def test_v2_auth_with_error_content(self, mock_request): self.api_access.get_existing_token = MagicMock(return_value=None) + self.response.json = Mock(return_value=ERROR_AUTH_CONTENT) # authentication content from OpenStack Api will be incorrect - mock_request.return_value = (RESPONSE, ERROR_AUTH_CONTENT) + mock_request.return_value = self.response token_details = self.api_access.v2_auth(TEST_PROJECT, TEST_HEADER, TEST_BODY) self.assertIs(token_details, None, "Can't get None when the content is wrong") - @patch("httplib2.Http.request") + @patch("requests.post") def test_v2_auth_with_error_token(self, mock_request): + self.response.status_code = requests.codes.bad_request + self.response.json = Mock(return_value=ERROR_TOKEN_CONTENT) # authentication info from OpenStack Api will not contain token info - mock_request.return_value = (RESPONSE, ERROR_TOKEN_CONTENT) + mock_request.return_value = self.response token_details = self.api_access.v2_auth(TEST_PROJECT, TEST_HEADER, TEST_BODY) self.assertIs(token_details, None, "Can't get None when the content " + "doesn't contain any token info") - @patch("httplib2.Http.request") + @patch("requests.post") def test_v2_auth_with_error_expiry_time(self, mock_request): - mock_request.return_value = (RESPONSE, CORRECT_AUTH_CONTENT) + self.response.json = Mock(return_value=CORRECT_AUTH_CONTENT) + mock_request.return_value = self.response # store original parse_time method original_method = self.api_access.parse_time @@ -84,28 +94,33 @@ class TestApiAccess(TestFetch): self.assertIs(token_details, None, "Can't get None when the time in token " + "can't be parsed") - @patch("httplib2.Http.request") + @patch("requests.post") def test_v2_auth_pwd(self, mock_request): + self.response.json = Mock(return_value=CORRECT_AUTH_CONTENT) # mock the authentication info from OpenStack Api - mock_request.return_value = (RESPONSE, CORRECT_AUTH_CONTENT) + mock_request.return_value = self.response token = self.api_access.v2_auth_pwd(PROJECT) self.assertNotEqual(token, None, "Can't get token") - @patch("httplib2.Http.request") + @patch("requests.get") def test_get_url(self, mock_request): - mock_request.return_value = (RESPONSE, GET_CONTENT) + self.response.json = Mock(return_value=GET_CONTENT) + mock_request.return_value = self.response result = self.api_access.get_url(TEST_URL, TEST_HEADER) # check whether it returns content message when the response is correct - self.assertNotIn("status", result, "Can't get content when the " + - "response is correct") + self.assertNotEqual(result, None, "Can't get content when the " + "response is correct") - @patch("httplib2.Http.request") + @patch("requests.get") def test_get_url_with_error_response(self, mock_request): + self.response.status_code = requests.codes.bad_request + self.response.json = Mock(return_value=None) + self.response.text = "Bad request" # the response will be wrong - mock_request.return_value = (ERROR_RESPONSE, None) + mock_request.return_value = self.response result = self.api_access.get_url(TEST_URL, TEST_HEADER) - self.assertNotEqual(result, None, "Can't get response message " + - "when the response status is not 200") + self.assertEqual(result, None, "Result returned" + + "when the response status is not 200") def test_get_region_url(self): region_url = self.api_access.get_region_url(REGION_NAME, SERVICE_NAME) |