Skip to main content
Glama
by cycodehq
test_token_based_client.py3.24 kB
import arrow import responses from cycode.cyclient.cycode_token_based_client import CycodeTokenBasedClient from tests.conftest import _EXPECTED_API_TOKEN, create_token_based_client @responses.activate def test_access_token_new(token_based_client: CycodeTokenBasedClient, api_token_response: responses.Response) -> None: responses.add(api_token_response) api_token = token_based_client.get_access_token() assert api_token == _EXPECTED_API_TOKEN @responses.activate def test_access_token_expired( token_based_client: CycodeTokenBasedClient, api_token_response: responses.Response ) -> None: responses.add(api_token_response) token_based_client.get_access_token() # mark token as expired token_based_client._expires_in = arrow.utcnow().shift(hours=-1) # refresh token api_token_refreshed = token_based_client.get_access_token() assert api_token_refreshed == _EXPECTED_API_TOKEN def test_get_request_headers(token_based_client: CycodeTokenBasedClient, api_token: str) -> None: token_based_headers = {'Authorization': f'Bearer {_EXPECTED_API_TOKEN}'} expected_headers = {**token_based_client.MANDATORY_HEADERS, **token_based_headers} assert token_based_client.get_request_headers() == expected_headers @responses.activate def test_access_token_cached( token_based_client: CycodeTokenBasedClient, api_token_response: responses.Response ) -> None: # save to cache responses.add(api_token_response) token_based_client.get_access_token() # load from cache client2 = create_token_based_client() assert client2._access_token == token_based_client._access_token assert client2._expires_in == token_based_client._expires_in @responses.activate def test_access_token_cached_creator_changed( token_based_client: CycodeTokenBasedClient, api_token_response: responses.Response ) -> None: # save to cache responses.add(api_token_response) token_based_client.get_access_token() # load from cache with another client id and client secret client2 = create_token_based_client('client_id2', 'client_secret2') assert client2._access_token is None assert client2._expires_in is None @responses.activate def test_access_token_invalidation( token_based_client: CycodeTokenBasedClient, api_token_response: responses.Response ) -> None: # save to cache responses.add(api_token_response) token_based_client.get_access_token() expected_access_token = token_based_client._access_token expected_expires_in = token_based_client._expires_in # invalidate in runtime token_based_client.invalidate_access_token() assert token_based_client._access_token is None assert token_based_client._expires_in is None # load from cache client2 = create_token_based_client() assert client2._access_token == expected_access_token assert client2._expires_in == expected_expires_in # invalidate in storage client2.invalidate_access_token(in_storage=True) assert client2._access_token is None assert client2._expires_in is None # load from cache again client3 = create_token_based_client() assert client3._access_token is None assert client3._expires_in is None

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/cycodehq/cycode-cli'

If you have feedback or need assistance with the MCP directory API, please join our Discord server