def test_401_error(self, klaviyo_401_error, mocked_get_request_timeout): try: utils_.authed_get("", "", "") except utils_.KlaviyoUnauthorizedError as e: self.assertEquals( str(e), "HTTP-error-code: 401, Error: Invalid authorization credentials." )
def test_500_error(self, klaviyo_500_error, mocked_get_request_timeout): try: utils_.authed_get("", "", "") except utils_.KlaviyoInternalServiceError as e: self.assertEquals( str(e), "HTTP-error-code: 500, Error: Internal Service Error from Klaviyo." )
def test_400_error(self, klaviyo_400_error, mocked_get_request_timeout): try: utils_.authed_get("", "", "") except utils_.KlaviyoBadRequestError as e: self.assertEquals( str(e), "HTTP-error-code: 400, Error: Request is missing or has a bad parameter." )
def test_404_error(self, klaviyo_404_error, mocked_get_request_timeout): try: utils_.authed_get("", "", "") except utils_.KlaviyoNotFoundError as e: self.assertEquals( str(e), "HTTP-error-code: 404, Error: The requested resource doesn't exist." )
def test_403_error(self, klaviyo_403_error, mocked_get_request_timeout): try: utils_.authed_get("", "", "") except utils_.KlaviyoForbiddenError as e: self.assertEquals( str(e), "HTTP-error-code: 403, Error: Invalid authorization credentials or permissions." )
def test_403_error_missing_api_key(self, klaviyo_403_error_missing_api_key, mocked_get_request_timeout): try: utils_.authed_get("", "", "") except utils_.KlaviyoForbiddenError as e: self.assertEquals( str(e), "HTTP-error-code: 403, Error: You must specify an API key to make requests." )
def test_403_error_wrong_api_key(self, klaviyo_403_error_wrong_api_key, mocked_get_request_timeout): try: utils_.authed_get("", "", "") except utils_.KlaviyoForbiddenError as e: self.assertEquals( str(e), "HTTP-error-code: 403, Error: The API key specified is invalid." )
def test_jsondecode(self, mocked_request, mocked_get_request_timeout): mock_resp = mock.Mock() mock_resp.status_code = 200 mock_resp.json.side_effect = simplejson.scanner.JSONDecodeError( "", "", 1) mocked_request.return_value = mock_resp try: utils_.authed_get("", "", "") except simplejson.scanner.JSONDecodeError: pass self.assertEquals(mocked_request.call_count, 3)
def test_connection_error_backoff(self, mocked_parse_args, mocked_request, mocked_sleep): # mock request and raise 'ConnectionError' error mocked_request.side_effect = requests.ConnectionError mock_config = {} # mock parse args mocked_parse_args.return_value = get_args(mock_config) try: # function call utils.authed_get("test_source", "", "") except requests.ConnectionError: pass # verify that we backoff for 5 times self.assertEquals(5, mocked_request.call_count)
def test_timeout_empty_value_in_config(self, mocked_parse_args, mocked_request, mocked_sleep): mock_config = {"request_timeout": ""} # mock parse args mocked_parse_args.return_value = get_args(mock_config) # get the timeout value for assertion timeout = utils.get_request_timeout() # function call utils.authed_get("test_source", "", "") # verify that we got expected timeout value self.assertEquals(300.0, timeout) # verify that the request was called with expected timeout value mocked_request.assert_called_with(method='get', url='', params='', timeout=300.0)
def test_httperror(self, mocked_session, mocked_get_request_timeout): mock_resp = mock.Mock() klaviyo_error = utils_.KlaviyoInternalServiceError() http_error = requests.HTTPError() mock_resp.raise_for_error.side_effect = klaviyo_error mock_resp.raise_for_status.side_effect = http_error mock_resp.status_code = 500 mocked_session.return_value = mock_resp try: utils_.authed_get("", "", "") except utils_.KlaviyoInternalServiceError: pass self.assertEquals(mocked_session.call_count, 3)
def test_200(self, successful_200_request, mocked_get_request_timeout): test_data = {"tap": "klaviyo", "code": 200} actual_data = utils_.authed_get("", "", "").json() self.assertEquals(actual_data, test_data)