aboutsummaryrefslogtreecommitdiffstats
path: root/app/test/fetch/api_fetch/test_api_access.py
diff options
context:
space:
mode:
Diffstat (limited to 'app/test/fetch/api_fetch/test_api_access.py')
-rw-r--r--app/test/fetch/api_fetch/test_api_access.py53
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)