Remove async_entry_has_scopes check

This is not needed. This was copied from google calendar integration
where it was needed to reauth when the scope changed.
This commit is contained in:
tronikos
2022-12-09 17:27:34 +00:00
parent 22a0b57fb5
commit 63e24f84cc
4 changed files with 3 additions and 38 deletions

View File

@@ -21,7 +21,7 @@ from homeassistant.helpers.config_entry_oauth2_flow import (
import homeassistant.helpers.config_validation as cv import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.selector import ConfigEntrySelector from homeassistant.helpers.selector import ConfigEntrySelector
from .const import DATA_CONFIG_ENTRY, DEFAULT_ACCESS, DOMAIN from .const import DATA_CONFIG_ENTRY, DOMAIN
DATA = "data" DATA = "data"
WORKSHEET = "worksheet" WORKSHEET = "worksheet"
@@ -51,9 +51,6 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
raise ConfigEntryNotReady from err raise ConfigEntryNotReady from err
except aiohttp.ClientError as err: except aiohttp.ClientError as err:
raise ConfigEntryNotReady from err raise ConfigEntryNotReady from err
if not async_entry_has_scopes(hass, entry):
raise ConfigEntryAuthFailed("Required scopes are not present, reauth required")
hass.data.setdefault(DOMAIN, {})[entry.entry_id] = session hass.data.setdefault(DOMAIN, {})[entry.entry_id] = session
await async_setup_service(hass) await async_setup_service(hass)
@@ -61,11 +58,6 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
return True return True
def async_entry_has_scopes(hass: HomeAssistant, entry: ConfigEntry) -> bool:
"""Verify that the config entry desired scope is present in the oauth token."""
return DEFAULT_ACCESS in entry.data.get(CONF_TOKEN, {}).get("scope", "").split(" ")
async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
"""Unload a config entry.""" """Unload a config entry."""
hass.data[DOMAIN].pop(entry.entry_id) hass.data[DOMAIN].pop(entry.entry_id)

View File

@@ -13,7 +13,7 @@ from homeassistant.const import CONF_ACCESS_TOKEN, CONF_TOKEN
from homeassistant.data_entry_flow import FlowResult from homeassistant.data_entry_flow import FlowResult
from homeassistant.helpers import config_entry_oauth2_flow from homeassistant.helpers import config_entry_oauth2_flow
from .const import DEFAULT_ACCESS, DEFAULT_NAME, DOMAIN from .const import DEFAULT_NAME, DOMAIN
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
@@ -36,7 +36,7 @@ class OAuth2FlowHandler(
def extra_authorize_data(self) -> dict[str, Any]: def extra_authorize_data(self) -> dict[str, Any]:
"""Extra data that needs to be appended to the authorize url.""" """Extra data that needs to be appended to the authorize url."""
return { return {
"scope": DEFAULT_ACCESS, "scope": "https://www.googleapis.com/auth/drive.file",
# Add params to ensure we get back a refresh token # Add params to ensure we get back a refresh token
"access_type": "offline", "access_type": "offline",
"prompt": "consent", "prompt": "consent",

View File

@@ -7,4 +7,3 @@ DOMAIN = "google_sheets"
DATA_CONFIG_ENTRY: Final = "config_entry" DATA_CONFIG_ENTRY: Final = "config_entry"
DEFAULT_NAME = "Google Sheets" DEFAULT_NAME = "Google Sheets"
DEFAULT_ACCESS = "https://www.googleapis.com/auth/drive.file"

View File

@@ -95,32 +95,6 @@ async def test_setup_success(
assert not len(hass.services.async_services().get(DOMAIN, {})) assert not len(hass.services.async_services().get(DOMAIN, {}))
@pytest.mark.parametrize(
"scopes",
[
[],
[
"https://www.googleapis.com/auth/drive.file+plus+extra"
], # Required scope is a prefix
["https://www.googleapis.com/auth/drive.readonly"],
],
ids=["no_scope", "required_scope_prefix", "other_scope"],
)
async def test_missing_required_scopes_requires_reauth(
hass: HomeAssistant, setup_integration: ComponentSetup
) -> None:
"""Test that reauth is invoked when required scopes are not present."""
await setup_integration()
entries = hass.config_entries.async_entries(DOMAIN)
assert len(entries) == 1
assert entries[0].state is ConfigEntryState.SETUP_ERROR
flows = hass.config_entries.flow.async_progress()
assert len(flows) == 1
assert flows[0]["step_id"] == "reauth_confirm"
@pytest.mark.parametrize("expires_at", [time.time() - 3600], ids=["expired"]) @pytest.mark.parametrize("expires_at", [time.time() - 3600], ids=["expired"])
async def test_expired_token_refresh_success( async def test_expired_token_refresh_success(
hass: HomeAssistant, hass: HomeAssistant,