def test_get_usage_by_client_internal_error(self, mock_get): clientId = '0' * 96 clientSecret = '0' * 71 client = Client(clientId, clientSecret) client.token = "correctToken" mock_response = mock.Mock() mock_response.status_code = 500 mock_get.return_value = mock_response url = Client.base_URL + 'apps/1/usage' param = {'owner': 'testowner'} headers = {'Authorization': 'Bearer correctToken'} with self.assertRaises(InternalError): client.usage_by_client('1', 'testowner') mock_get.assert_called_once_with(url, headers=headers, params=param) self.assertEqual(0, mock_response.json.call_count)
def test_get_usage_by_client_expired_token_success(self, mock_get): clientId = '0' * 96 clientSecret = '0' * 71 client = Client(clientId, clientSecret) client.token = "ExpiredToken" mock_response = mock.Mock() mock_response.status_code = 401 mock_response.json.return_value = {'message': 'Token expired'} mock_response1 = mock.Mock() mock_response1.status_code = 200 mock_response1.json.return_value = {'token': 'newToken'} mock_response2 = mock.Mock() mock_response2.status_code = 200 mock_response2.json.return_value = {'api_usage': 1} mock_get.side_effect = [mock_response, mock_response1, mock_response2] self.assertEqual(1, client.usage_by_client('1', 'testowner')) self.assertEqual(3, mock_get.call_count) headers = {'Authorization': 'Bearer ExpiredToken'} newheaders = {'Authorization': 'Bearer newToken'} params = {'owner': 'testowner'} call_list = [ mock.call(self.base_URL + 'apps/1/usage', headers=headers, params=params), mock.call(self.base_URL + 'auth/?clientID=' + clientId + '&clientSecret=' + clientSecret), mock.call(self.base_URL + 'apps/1/usage', headers=newheaders, params=params) ] self.assertEqual(mock_get.call_args_list, call_list)
def test_get_usage_by_client_id_not_found(self, mock_get): clientId = '0' * 96 clientSecret = '0' * 71 client = Client(clientId, clientSecret) client.token = "correctToken" mock_response = mock.Mock() mock_response.status_code = 404 mock_response.json.return_value = { 'message': 'No app exists with given clientID' } mock_get.return_value = mock_response url = Client.base_URL + 'apps/1/usage' param = {'owner': 'testowner'} headers = {'Authorization': 'Bearer correctToken'} with self.assertRaises(ResourceNotFoundError): client.usage_by_client('1', 'testowner') mock_get.assert_called_once_with(url, headers=headers, params=param) self.assertEqual(1, mock_response.json.call_count)
def test_get_usage_by_client_authorization_error(self, mock_get): clientId = '0' * 96 clientSecret = '0' * 71 client = Client(clientId, clientSecret) client.token = "correctToken" mock_response = mock.Mock() mock_response.status_code = 403 mock_response.json.return_value = { 'message': 'Forbidden to view API usage of this client' } mock_get.return_value = mock_response with self.assertRaises(AuthorizationError): client.usage_by_client('1', 'testowner') url = Client.base_URL + 'apps/1/usage' param = {'owner': 'testowner'} headers = {'Authorization': 'Bearer correctToken'} mock_get.assert_called_once_with(url, headers=headers, params=param) self.assertEqual(1, mock_response.json.call_count)
def test_get_usage_by_clientID_all_correct(self, mock_get): clientId = '0' * 96 clientSecret = '0' * 71 client = Client(clientId, clientSecret) client.token = "correctToken" mock_response = mock.Mock() mock_response.status_code = 200 mock_response.json.return_value = {'api_usage': 7} mock_get.return_value = mock_response url = Client.base_URL + 'apps/1/usage' param = {'owner': 'testowner'} headers = {'Authorization': 'Bearer correctToken'} self.assertEqual(client.usage_by_client('1', 'testowner'), 7) mock_get.assert_called_once_with(url, headers=headers, params=param)