"""Test Alexa auth endpoints.""" from homeassistant.components.alexa.auth import Auth from . import TEST_TOKEN_URL async def run_auth_get_access_token( hass, aioclient_mock, expires_in, client_id, client_secret, accept_grant_code, refresh_token, ): """Do auth and request a new token for tests.""" aioclient_mock.post( TEST_TOKEN_URL, json={ "access_token": "the_access_token", "refresh_token": refresh_token, "expires_in": expires_in, }, ) auth = Auth(hass, client_id, client_secret) await auth.async_do_auth(accept_grant_code) await auth.async_get_access_token() async def test_auth_get_access_token_expired(hass, aioclient_mock): """Test the auth get access token function.""" client_id = "client123" client_secret = "shhhhh" accept_grant_code = "abcdefg" refresh_token = "refresher" await run_auth_get_access_token( hass, aioclient_mock, -5, client_id, client_secret, accept_grant_code, refresh_token, ) assert len(aioclient_mock.mock_calls) == 2 calls = aioclient_mock.mock_calls auth_call_json = calls[0][2] token_call_json = calls[1][2] assert auth_call_json["grant_type"] == "authorization_code" assert auth_call_json["code"] == accept_grant_code assert auth_call_json["client_id"] == client_id assert auth_call_json["client_secret"] == client_secret assert token_call_json["grant_type"] == "refresh_token" assert token_call_json["refresh_token"] == refresh_token assert token_call_json["client_id"] == client_id assert token_call_json["client_secret"] == client_secret async def test_auth_get_access_token_not_expired(hass, aioclient_mock): """Test the auth get access token function.""" client_id = "client123" client_secret = "shhhhh" accept_grant_code = "abcdefg" refresh_token = "refresher" await run_auth_get_access_token( hass, aioclient_mock, 555, client_id, client_secret, accept_grant_code, refresh_token, ) assert len(aioclient_mock.mock_calls) == 1 call = aioclient_mock.mock_calls auth_call_json = call[0][2] assert auth_call_json["grant_type"] == "authorization_code" assert auth_call_json["code"] == accept_grant_code assert auth_call_json["client_id"] == client_id assert auth_call_json["client_secret"] == client_secret