Make auth test fixtures async (#91263)

Make auth fixtures async in tests
This commit is contained in:
epenet 2023-04-13 02:43:50 +02:00 committed by GitHub
parent e4d2409ca4
commit 687c035bb2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -644,29 +644,25 @@ def hass_owner_user(
@pytest.fixture @pytest.fixture
def hass_admin_user( async def hass_admin_user(
hass: HomeAssistant, local_auth: homeassistant.HassAuthProvider hass: HomeAssistant, local_auth: homeassistant.HassAuthProvider
) -> MockUser: ) -> MockUser:
"""Return a Home Assistant admin user.""" """Return a Home Assistant admin user."""
admin_group = hass.loop.run_until_complete( admin_group = await hass.auth.async_get_group(GROUP_ID_ADMIN)
hass.auth.async_get_group(GROUP_ID_ADMIN)
)
return MockUser(groups=[admin_group]).add_to_hass(hass) return MockUser(groups=[admin_group]).add_to_hass(hass)
@pytest.fixture @pytest.fixture
def hass_read_only_user( async def hass_read_only_user(
hass: HomeAssistant, local_auth: homeassistant.HassAuthProvider hass: HomeAssistant, local_auth: homeassistant.HassAuthProvider
) -> MockUser: ) -> MockUser:
"""Return a Home Assistant read only user.""" """Return a Home Assistant read only user."""
read_only_group = hass.loop.run_until_complete( read_only_group = await hass.auth.async_get_group(GROUP_ID_READ_ONLY)
hass.auth.async_get_group(GROUP_ID_READ_ONLY)
)
return MockUser(groups=[read_only_group]).add_to_hass(hass) return MockUser(groups=[read_only_group]).add_to_hass(hass)
@pytest.fixture @pytest.fixture
def hass_read_only_access_token( async def hass_read_only_access_token(
hass: HomeAssistant, hass: HomeAssistant,
hass_read_only_user: MockUser, hass_read_only_user: MockUser,
local_auth: homeassistant.HassAuthProvider, local_auth: homeassistant.HassAuthProvider,
@ -681,37 +677,31 @@ def hass_read_only_access_token(
) )
hass_read_only_user.credentials.append(credential) hass_read_only_user.credentials.append(credential)
refresh_token = hass.loop.run_until_complete( refresh_token = await hass.auth.async_create_refresh_token(
hass.auth.async_create_refresh_token( hass_read_only_user, CLIENT_ID, credential=credential
hass_read_only_user, CLIENT_ID, credential=credential
)
) )
return hass.auth.async_create_access_token(refresh_token) return hass.auth.async_create_access_token(refresh_token)
@pytest.fixture @pytest.fixture
def hass_supervisor_user( async def hass_supervisor_user(
hass: HomeAssistant, local_auth: homeassistant.HassAuthProvider hass: HomeAssistant, local_auth: homeassistant.HassAuthProvider
) -> MockUser: ) -> MockUser:
"""Return the Home Assistant Supervisor user.""" """Return the Home Assistant Supervisor user."""
admin_group = hass.loop.run_until_complete( admin_group = await hass.auth.async_get_group(GROUP_ID_ADMIN)
hass.auth.async_get_group(GROUP_ID_ADMIN)
)
return MockUser( return MockUser(
name=HASSIO_USER_NAME, groups=[admin_group], system_generated=True name=HASSIO_USER_NAME, groups=[admin_group], system_generated=True
).add_to_hass(hass) ).add_to_hass(hass)
@pytest.fixture @pytest.fixture
def hass_supervisor_access_token( async def hass_supervisor_access_token(
hass: HomeAssistant, hass: HomeAssistant,
hass_supervisor_user, hass_supervisor_user,
local_auth: homeassistant.HassAuthProvider, local_auth: homeassistant.HassAuthProvider,
) -> str: ) -> str:
"""Return a Home Assistant Supervisor access token.""" """Return a Home Assistant Supervisor access token."""
refresh_token = hass.loop.run_until_complete( refresh_token = await hass.auth.async_create_refresh_token(hass_supervisor_user)
hass.auth.async_create_refresh_token(hass_supervisor_user)
)
return hass.auth.async_create_access_token(refresh_token) return hass.auth.async_create_access_token(refresh_token)
@ -730,12 +720,12 @@ def legacy_auth(
@pytest.fixture @pytest.fixture
def local_auth(hass: HomeAssistant) -> homeassistant.HassAuthProvider: async def local_auth(hass: HomeAssistant) -> homeassistant.HassAuthProvider:
"""Load local auth provider.""" """Load local auth provider."""
prv = homeassistant.HassAuthProvider( prv = homeassistant.HassAuthProvider(
hass, hass.auth._store, {"type": "homeassistant"} hass, hass.auth._store, {"type": "homeassistant"}
) )
hass.loop.run_until_complete(prv.async_initialize()) await prv.async_initialize()
hass.auth._providers[(prv.type, prv.id)] = prv hass.auth._providers[(prv.type, prv.id)] = prv
return prv return prv