core/tests/components/alexa/test_auth.py

68 lines
2.5 KiB
Python

"""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