コード例 #1
0
    def test_graphql_uses_access_token_after_login(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.graphql({})
        assert client.get_auth_token() == "api"
        assert post.call_args[1]["headers"] == {
            "Authorization": "Bearer api",
            "X-PREFECT-CORE-VERSION": str(prefect.__version__),
        }

        client.login_to_tenant(tenant_id=tenant_id)
        client.graphql({})
        assert client.get_auth_token() == "ACCESS_TOKEN"
        assert post.call_args[1]["headers"] == {
            "Authorization": "Bearer ACCESS_TOKEN",
            "X-PREFECT-CORE-VERSION": str(prefect.__version__),
        }
コード例 #2
0
ファイル: test_client_auth.py プロジェクト: zh0uquan/prefect
 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
コード例 #3
0
ファイル: test_client_auth.py プロジェクト: zh0uquan/prefect
 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
コード例 #4
0
ファイル: test_client_auth.py プロジェクト: zh0uquan/prefect
 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()
コード例 #5
0
    def test_graphql_uses_access_token_after_login(self, patch_post):
        tenant_id = str(uuid.uuid4())
        post = patch_post(
            {
                "data": {
                    "tenant": [{"id": tenant_id}],
                    "switchTenant": {
                        "accessToken": "ACCESS_TOKEN",
                        "expiresIn": 600,
                        "refreshToken": "REFRESH_TOKEN",
                    },
                }
            }
        )
        client = Client(api_token="api")
        client.graphql({})
        assert client.get_auth_token() == "api"
        assert post.call_args[1]["headers"] == dict(Authorization="Bearer api")

        client.login_to_tenant(tenant_id=tenant_id)
        client.graphql({})
        assert client.get_auth_token() == "ACCESS_TOKEN"
        assert post.call_args[1]["headers"] == dict(Authorization="Bearer ACCESS_TOKEN")
コード例 #6
0
ファイル: test_client_auth.py プロジェクト: zh0uquan/prefect
 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"
コード例 #7
0
ファイル: test_client_auth.py プロジェクト: zh0uquan/prefect
 def test_get_auth_token_returns_api_if_access_token_not_set(self):
     client = Client(api_token="api")
     assert client._access_token is None
     assert client.get_auth_token() == "api"