def test_get_auth_token_doesnt_refresh_if_refresh_token_and_future_expiration( self, monkeypatch): refresh_token = MagicMock() monkeypatch.setattr("prefect.Client._refresh_access_token", refresh_token) client = Client(api_token="api") client._access_token = "access" client._refresh_token = "refresh" client._access_token_expires_at = pendulum.now().add(minutes=10) assert client.get_auth_token() == "access" refresh_token.assert_not_called()
def test_get_auth_token_refreshes_if_refresh_token_and_no_expiration( self, monkeypatch): refresh_token = MagicMock() monkeypatch.setattr("prefect.Client._refresh_access_token", refresh_token) client = Client(api_token="api") client._access_token = "access" client._refresh_token = "refresh" client._access_token_expires_at = None client.get_auth_token() assert refresh_token.called
def test_get_auth_token_refreshes_if_refresh_token_and_expiration_within_30_seconds( self, monkeypatch): refresh_token = MagicMock() monkeypatch.setattr("prefect.Client._refresh_access_token", refresh_token) client = Client(api_token="api") client._access_token = "access" client._refresh_token = "refresh" client._access_token_expires_at = pendulum.now().add(seconds=29) client.get_auth_token() assert refresh_token.called
def test_refresh_token_passes_refresh_token_as_header(self, patch_post): post = patch_post({ "data": { "refreshToken": { "accessToken": "ACCESS_TOKEN", "expiresAt": "2100-01-01", "refreshToken": "REFRESH_TOKEN", } } }) client = Client() client._refresh_token = "refresh" client._refresh_access_token() assert post.call_args[1]["headers"] == dict( Authorization="Bearer refresh")
def test_refresh_token_passes_refresh_token_as_header(self, patch_post): post = patch_post({ "data": { "refresh_token": { "access_token": "ACCESS_TOKEN", "expires_at": "2100-01-01", "refresh_token": "REFRESH_TOKEN", } } }) client = Client() client._refresh_token = "refresh" client._refresh_access_token() assert post.call_args[1]["headers"] == { "Authorization": "Bearer refresh", "X-PREFECT-CORE-VERSION": str(prefect.__version__), }