def update_token(self): try: self.session.fetch_token(token_url=self.token_url, auth=self.auth, timeout=self.request_timeout) self.token_cache.add_token(self.grant_client_id, self.token_url, self.session.token) except OAuth2Error as oauth2_error: raise error.AuthorisationError(str(oauth2_error.args[0]), cause=oauth2_error)
def test_request_given_server_returns_an_authorisation_error_fetching_the_token_then_error_is_not_retried( self): mock_auth = Mock() mock_session = Mock() mock_session.request.side_effect = error.AuthorisationError( 'Auth error') http_executor = http.HttpExecutor(mock_auth, session=mock_session, backoff_strategy={ 'interval': 0, 'max_tries': 3 }) with pytest.raises(error.AuthorisationError): http_executor.request("GET", "mock://test.com") mock_session.request.assert_called_once_with( 'GET', 'mock://test.com', allow_redirects=False, data=None, headers={ 'User-Agent': mock.ANY, 'Content-Type': 'application/vnd.piksel+json', 'Accept': 'application/vnd.piksel+json', 'X-Correlation-ID': None }, params=None, timeout=240)
def test_request_given_server_returns_an_authorisation_error_then_fetch_token_does_not_count_as_retry( self): json_response = 'Error getting resource' mock_auth = Mock() mock_session = Mock() mock_session.request.side_effect = [ error.AuthorisationError('Auth error'), { 'text': json_response, 'status_code': 500 }, { 'text': json_response, 'status_code': 200 } ] http_executor = http.HttpExecutor(mock_auth, session=mock_session, backoff_strategy={ 'interval': 0, 'max_tries': 1 }) with pytest.raises(error.AuthorisationError) as e: http_executor.request("GET", "mock://test.com") assert_that(e.value.args[0], is_('Auth error')) mock_session.request.assert_called_once_with( 'GET', 'mock://test.com', allow_redirects=False, data=None, headers={ 'User-Agent': mock.ANY, 'Content-Type': 'application/vnd.piksel+json', 'Accept': 'application/vnd.piksel+json', 'X-Correlation-ID': None }, params=None, timeout=240)