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_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_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_access_token_as_arg(self, patch_post): post = patch_post({ "data": { "refreshToken": { "accessToken": "ACCESS_TOKEN", "expiresAt": "2100-01-01", "refreshToken": "REFRESH_TOKEN", } } }) client = Client() client._access_token = "access" client._refresh_access_token() variables = json.loads(post.call_args[1]["json"]["variables"]) assert variables["input"]["accessToken"] == "access"
def test_login_uses_api_token_when_access_token_is_set(self, patch_post): tenant_id = str(uuid.uuid4()) post = patch_post({ "data": { "tenant": [{ "id": tenant_id }], "switchTenant": { "accessToken": "ACCESS_TOKEN", "expiresAt": "2100-01-01", "refreshToken": "REFRESH_TOKEN", }, } }) client = Client(api_token="api") client._access_token = "access" client.login_to_tenant(tenant_id=tenant_id) assert client.get_auth_token() == "ACCESS_TOKEN" assert post.call_args[1]["headers"] == dict(Authorization="Bearer api")
def test_login_uses_api_token_when_access_token_is_set(self, patch_post): tenant_id = str(uuid.uuid4()) post = patch_post( { "data": { "tenant": [{"id": tenant_id}], "switch_tenant": { "access_token": "ACCESS_TOKEN", "expires_at": "2100-01-01", "refresh_token": "REFRESH_TOKEN", }, } } ) client = Client(api_token="api") client._access_token = "access" client.login_to_tenant(tenant_id=tenant_id) assert client.get_auth_token() == "ACCESS_TOKEN" assert post.call_args[1]["headers"] == { "Authorization": "Bearer api", "X-PREFECT-CORE-VERSION": str(prefect.__version__), }
def test_get_auth_token_returns_access_token_if_set(self): client = Client(api_token="api") client._access_token = "access" assert client.get_auth_token() == "access"