diff --git a/homeassistant/auth/providers/legacy_api_password.py b/homeassistant/auth/providers/legacy_api_password.py index f631f8e73cf3d43b1062f5c8f7355ab0f745138f..111b9e7d39f34324a4dc491620dda1fd2f865108 100644 --- a/homeassistant/auth/providers/legacy_api_password.py +++ b/homeassistant/auth/providers/legacy_api_password.py @@ -24,7 +24,7 @@ USER_SCHEMA = vol.Schema({ CONFIG_SCHEMA = AUTH_PROVIDER_SCHEMA.extend({ }, extra=vol.PREVENT_EXTRA) -LEGACY_USER = 'homeassistant' +LEGACY_USER_NAME = 'Legacy API password user' class InvalidAuthError(HomeAssistantError): @@ -52,23 +52,21 @@ class LegacyApiPasswordAuthProvider(AuthProvider): async def async_get_or_create_credentials( self, flow_result: Dict[str, str]) -> Credentials: - """Return LEGACY_USER always.""" - for credential in await self.async_credentials(): - if credential.data['username'] == LEGACY_USER: - return credential + """Return credentials for this login.""" + credentials = await self.async_credentials() + if credentials: + return credentials[0] - return self.async_create_credentials({ - 'username': LEGACY_USER - }) + return self.async_create_credentials({}) async def async_user_meta_for_credentials( self, credentials: Credentials) -> UserMeta: """ - Set name as LEGACY_USER always. + Return info for the user. Will be used to populate info when creating a new user. """ - return UserMeta(name=LEGACY_USER, is_active=True) + return UserMeta(name=LEGACY_USER_NAME, is_active=True) class LegacyLoginFlow(LoginFlow): diff --git a/tests/auth/providers/test_legacy_api_password.py b/tests/auth/providers/test_legacy_api_password.py index 60916798d5b9491a2e266c4bb46946823f31fe82..96da624161a35879dd09488fdd10e148d272e62c 100644 --- a/tests/auth/providers/test_legacy_api_password.py +++ b/tests/auth/providers/test_legacy_api_password.py @@ -33,11 +33,10 @@ def manager(hass, store, provider): async def test_create_new_credential(manager, provider): """Test that we create a new credential.""" credentials = await provider.async_get_or_create_credentials({}) - assert credentials.data["username"] is legacy_api_password.LEGACY_USER assert credentials.is_new is True user = await manager.async_get_or_create_user(credentials) - assert user.name == legacy_api_password.LEGACY_USER + assert user.name == legacy_api_password.LEGACY_USER_NAME assert user.is_active @@ -46,7 +45,6 @@ async def test_only_one_credentials(manager, provider): credentials = await provider.async_get_or_create_credentials({}) await manager.async_get_or_create_user(credentials) credentials2 = await provider.async_get_or_create_credentials({}) - assert credentials2.data["username"] == legacy_api_password.LEGACY_USER assert credentials2.id == credentials.id assert credentials2.is_new is False