Fix vizio bug to use 'get' to get volume_step since it is optional (#32151)

* use get to get volume_step since it is optional

* always set volume_step to default in options and data if its not included
pull/32157/head
Raman Gupta 2020-02-24 17:37:54 -05:00 committed by GitHub
parent 90859b82e2
commit 309989be89
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 5 deletions

View File

@ -180,8 +180,11 @@ class VizioConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
if entry.data[CONF_NAME] != import_config[CONF_NAME]:
updated_name[CONF_NAME] = import_config[CONF_NAME]
if entry.data[CONF_VOLUME_STEP] != import_config[CONF_VOLUME_STEP]:
updated_options[CONF_VOLUME_STEP] = import_config[CONF_VOLUME_STEP]
import_volume_step = import_config.get(
CONF_VOLUME_STEP, DEFAULT_VOLUME_STEP
)
if entry.data.get(CONF_VOLUME_STEP) != import_volume_step:
updated_options[CONF_VOLUME_STEP] = import_volume_step
if updated_options or updated_name:
new_data = entry.data.copy()

View File

@ -300,15 +300,15 @@ async def test_import_flow_update_options(
result = await hass.config_entries.flow.async_init(
DOMAIN,
context={"source": SOURCE_IMPORT},
data=vol.Schema(VIZIO_SCHEMA)(MOCK_IMPORT_VALID_TV_CONFIG),
data=vol.Schema(VIZIO_SCHEMA)(MOCK_SPEAKER_CONFIG),
)
await hass.async_block_till_done()
assert result["result"].options == {CONF_VOLUME_STEP: VOLUME_STEP}
assert result["result"].options == {CONF_VOLUME_STEP: DEFAULT_VOLUME_STEP}
assert result["type"] == data_entry_flow.RESULT_TYPE_CREATE_ENTRY
entry_id = result["result"].entry_id
updated_config = MOCK_IMPORT_VALID_TV_CONFIG.copy()
updated_config = MOCK_SPEAKER_CONFIG.copy()
updated_config[CONF_VOLUME_STEP] = VOLUME_STEP + 1
result = await hass.config_entries.flow.async_init(
DOMAIN,