mirror of
https://github.com/jdejaegh/irm-kmi-ha.git
synced 2025-06-27 11:39:26 +02:00
Simplify values in options
This commit is contained in:
parent
8d2fcbefb5
commit
6bc54898ef
6 changed files with 14 additions and 21 deletions
|
@ -41,9 +41,6 @@ class IrmKmiConfigFlow(ConfigFlow, domain=DOMAIN):
|
||||||
errors = {}
|
errors = {}
|
||||||
|
|
||||||
if user_input:
|
if user_input:
|
||||||
if CONF_LANGUAGE_OVERRIDE in user_input:
|
|
||||||
user_input[CONF_LANGUAGE_OVERRIDE] = None if user_input[CONF_LANGUAGE_OVERRIDE] == 'none' \
|
|
||||||
else user_input[CONF_LANGUAGE_OVERRIDE]
|
|
||||||
_LOGGER.debug(f"Provided config user is: {user_input}")
|
_LOGGER.debug(f"Provided config user is: {user_input}")
|
||||||
|
|
||||||
if (zone := self.hass.states.get(user_input[CONF_ZONE])) is None:
|
if (zone := self.hass.states.get(user_input[CONF_ZONE])) is None:
|
||||||
|
@ -115,9 +112,6 @@ class IrmKmiOptionFlow(OptionsFlow):
|
||||||
async def async_step_init(self, user_input: dict | None = None) -> FlowResult:
|
async def async_step_init(self, user_input: dict | None = None) -> FlowResult:
|
||||||
"""Manage the options."""
|
"""Manage the options."""
|
||||||
if user_input is not None:
|
if user_input is not None:
|
||||||
if CONF_LANGUAGE_OVERRIDE in user_input:
|
|
||||||
user_input[CONF_LANGUAGE_OVERRIDE] = None if user_input[CONF_LANGUAGE_OVERRIDE] == 'none' \
|
|
||||||
else user_input[CONF_LANGUAGE_OVERRIDE]
|
|
||||||
_LOGGER.debug(user_input)
|
_LOGGER.debug(user_input)
|
||||||
return self.async_create_entry(data=user_input)
|
return self.async_create_entry(data=user_input)
|
||||||
|
|
||||||
|
@ -139,7 +133,7 @@ class IrmKmiOptionFlow(OptionsFlow):
|
||||||
translation_key=CONF_USE_DEPRECATED_FORECAST)),
|
translation_key=CONF_USE_DEPRECATED_FORECAST)),
|
||||||
|
|
||||||
vol.Optional(CONF_LANGUAGE_OVERRIDE,
|
vol.Optional(CONF_LANGUAGE_OVERRIDE,
|
||||||
default=str(get_config_value(self.config_entry, CONF_LANGUAGE_OVERRIDE)).lower()):
|
default=get_config_value(self.config_entry, CONF_LANGUAGE_OVERRIDE)):
|
||||||
SelectSelector(SelectSelectorConfig(options=CONF_LANGUAGE_OVERRIDE_OPTIONS,
|
SelectSelector(SelectSelectorConfig(options=CONF_LANGUAGE_OVERRIDE_OPTIONS,
|
||||||
mode=SelectSelectorMode.DROPDOWN,
|
mode=SelectSelectorMode.DROPDOWN,
|
||||||
translation_key=CONF_LANGUAGE_OVERRIDE))
|
translation_key=CONF_LANGUAGE_OVERRIDE))
|
||||||
|
|
|
@ -28,16 +28,13 @@ def modify_from_config(hass: HomeAssistant, config_entry_id: str, enable: bool):
|
||||||
|
|
||||||
|
|
||||||
def get_config_value(config_entry: ConfigEntry, key: str) -> Any:
|
def get_config_value(config_entry: ConfigEntry, key: str) -> Any:
|
||||||
try:
|
|
||||||
if config_entry.options and key in config_entry.options:
|
if config_entry.options and key in config_entry.options:
|
||||||
return config_entry.options[key]
|
return config_entry.options[key]
|
||||||
return config_entry.data[key]
|
return config_entry.data[key]
|
||||||
except KeyError:
|
|
||||||
return None
|
|
||||||
|
|
||||||
|
|
||||||
def preferred_language(hass: HomeAssistant, config_entry: ConfigEntry) -> str:
|
def preferred_language(hass: HomeAssistant, config_entry: ConfigEntry) -> str:
|
||||||
if get_config_value(config_entry, CONF_LANGUAGE_OVERRIDE) is None:
|
if get_config_value(config_entry, CONF_LANGUAGE_OVERRIDE) == 'none':
|
||||||
return hass.config.language if hass.config.language in LANGS else 'en'
|
return hass.config.language if hass.config.language in LANGS else 'en'
|
||||||
|
|
||||||
return get_config_value(config_entry, CONF_LANGUAGE_OVERRIDE)
|
return get_config_value(config_entry, CONF_LANGUAGE_OVERRIDE)
|
||||||
|
|
|
@ -15,7 +15,7 @@ from custom_components.irm_kmi.api import (IrmKmiApiError,
|
||||||
from custom_components.irm_kmi.const import (
|
from custom_components.irm_kmi.const import (
|
||||||
CONF_DARK_MODE, CONF_STYLE, CONF_USE_DEPRECATED_FORECAST, DOMAIN,
|
CONF_DARK_MODE, CONF_STYLE, CONF_USE_DEPRECATED_FORECAST, DOMAIN,
|
||||||
OPTION_DEPRECATED_FORECAST_NOT_USED,
|
OPTION_DEPRECATED_FORECAST_NOT_USED,
|
||||||
OPTION_DEPRECATED_FORECAST_TWICE_DAILY, OPTION_STYLE_STD)
|
OPTION_DEPRECATED_FORECAST_TWICE_DAILY, OPTION_STYLE_STD, CONF_LANGUAGE_OVERRIDE)
|
||||||
|
|
||||||
|
|
||||||
def get_api_data(fixture: str) -> dict:
|
def get_api_data(fixture: str) -> dict:
|
||||||
|
@ -52,7 +52,8 @@ def mock_config_entry() -> MockConfigEntry:
|
||||||
data={CONF_ZONE: "zone.home",
|
data={CONF_ZONE: "zone.home",
|
||||||
CONF_STYLE: OPTION_STYLE_STD,
|
CONF_STYLE: OPTION_STYLE_STD,
|
||||||
CONF_DARK_MODE: True,
|
CONF_DARK_MODE: True,
|
||||||
CONF_USE_DEPRECATED_FORECAST: OPTION_DEPRECATED_FORECAST_NOT_USED},
|
CONF_USE_DEPRECATED_FORECAST: OPTION_DEPRECATED_FORECAST_NOT_USED,
|
||||||
|
CONF_LANGUAGE_OVERRIDE: 'none'},
|
||||||
unique_id="zone.home",
|
unique_id="zone.home",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -66,7 +67,8 @@ def mock_config_entry_with_deprecated() -> MockConfigEntry:
|
||||||
data={CONF_ZONE: "zone.home",
|
data={CONF_ZONE: "zone.home",
|
||||||
CONF_STYLE: OPTION_STYLE_STD,
|
CONF_STYLE: OPTION_STYLE_STD,
|
||||||
CONF_DARK_MODE: True,
|
CONF_DARK_MODE: True,
|
||||||
CONF_USE_DEPRECATED_FORECAST: OPTION_DEPRECATED_FORECAST_TWICE_DAILY},
|
CONF_USE_DEPRECATED_FORECAST: OPTION_DEPRECATED_FORECAST_TWICE_DAILY,
|
||||||
|
CONF_LANGUAGE_OVERRIDE: 'none'},
|
||||||
unique_id="zone.home",
|
unique_id="zone.home",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -42,7 +42,7 @@ async def test_full_user_flow(
|
||||||
CONF_STYLE: OPTION_STYLE_STD,
|
CONF_STYLE: OPTION_STYLE_STD,
|
||||||
CONF_DARK_MODE: False,
|
CONF_DARK_MODE: False,
|
||||||
CONF_USE_DEPRECATED_FORECAST: OPTION_DEPRECATED_FORECAST_NOT_USED,
|
CONF_USE_DEPRECATED_FORECAST: OPTION_DEPRECATED_FORECAST_NOT_USED,
|
||||||
CONF_LANGUAGE_OVERRIDE: None}
|
CONF_LANGUAGE_OVERRIDE: 'none'}
|
||||||
|
|
||||||
|
|
||||||
async def test_config_flow_out_benelux_zone(
|
async def test_config_flow_out_benelux_zone(
|
||||||
|
@ -131,7 +131,7 @@ async def test_option_flow(
|
||||||
CONF_STYLE: OPTION_STYLE_SATELLITE,
|
CONF_STYLE: OPTION_STYLE_SATELLITE,
|
||||||
CONF_DARK_MODE: True,
|
CONF_DARK_MODE: True,
|
||||||
CONF_USE_DEPRECATED_FORECAST: OPTION_DEPRECATED_FORECAST_NOT_USED,
|
CONF_USE_DEPRECATED_FORECAST: OPTION_DEPRECATED_FORECAST_NOT_USED,
|
||||||
CONF_LANGUAGE_OVERRIDE: None
|
CONF_LANGUAGE_OVERRIDE: 'none'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -92,7 +92,7 @@ async def test_daily_forecast(
|
||||||
) -> None:
|
) -> None:
|
||||||
api_data = get_api_data("forecast.json").get('for', {}).get('daily')
|
api_data = get_api_data("forecast.json").get('for', {}).get('daily')
|
||||||
|
|
||||||
mock_config_entry.data = {CONF_LANGUAGE_OVERRIDE: 'fr'}
|
mock_config_entry.data = mock_config_entry.data | {CONF_LANGUAGE_OVERRIDE: 'fr'}
|
||||||
coordinator = IrmKmiCoordinator(hass, mock_config_entry)
|
coordinator = IrmKmiCoordinator(hass, mock_config_entry)
|
||||||
result = coordinator.daily_list_to_forecast(api_data)
|
result = coordinator.daily_list_to_forecast(api_data)
|
||||||
|
|
||||||
|
|
|
@ -66,7 +66,7 @@ async def test_next_warning_when_data_available(
|
||||||
mock_config_entry: MockConfigEntry
|
mock_config_entry: MockConfigEntry
|
||||||
) -> None:
|
) -> None:
|
||||||
api_data = get_api_data("be_forecast_warning.json")
|
api_data = get_api_data("be_forecast_warning.json")
|
||||||
mock_config_entry.data = {CONF_LANGUAGE_OVERRIDE: 'de'}
|
mock_config_entry.data = mock_config_entry.data | {CONF_LANGUAGE_OVERRIDE: 'de'}
|
||||||
|
|
||||||
coordinator = IrmKmiCoordinator(hass, mock_config_entry)
|
coordinator = IrmKmiCoordinator(hass, mock_config_entry)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue