Fix step in presets for generic thermostat (#128922)

This commit is contained in:
G Johansson 2024-10-23 08:13:42 +02:00 committed by GitHub
parent f8e6fb81d6
commit 3ddef56167
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 68 additions and 1 deletions

View File

@ -62,7 +62,7 @@ OPTIONS_SCHEMA = {
PRESETS_SCHEMA = {
vol.Optional(v): selector.NumberSelector(
selector.NumberSelectorConfig(
mode=selector.NumberSelectorMode.BOX, unit_of_measurement=DEGREE
mode=selector.NumberSelectorMode.BOX, unit_of_measurement=DEGREE, step=0.1
)
)
for v in CONF_PRESETS.values()

View File

@ -18,6 +18,25 @@
'type': <FlowResultType.FORM: 'form'>,
})
# ---
# name: test_config_flow_preset_accepts_float[create_entry]
FlowResultSnapshot({
'result': ConfigEntrySnapshot({
'title': 'My thermostat',
}),
'title': 'My thermostat',
'type': <FlowResultType.CREATE_ENTRY: 'create_entry'>,
})
# ---
# name: test_config_flow_preset_accepts_float[init]
FlowResultSnapshot({
'type': <FlowResultType.FORM: 'form'>,
})
# ---
# name: test_config_flow_preset_accepts_float[presets]
FlowResultSnapshot({
'type': <FlowResultType.FORM: 'form'>,
})
# ---
# name: test_options[create_entry]
FlowResultSnapshot({
'result': True,

View File

@ -132,3 +132,51 @@ async def test_options(hass: HomeAssistant, snapshot: SnapshotAssertion) -> None
# Check config entry is reloaded with new options
await hass.async_block_till_done()
assert hass.states.get("climate.my_thermostat") == snapshot(name="without_away")
async def test_config_flow_preset_accepts_float(
hass: HomeAssistant, snapshot: SnapshotAssertion
) -> None:
"""Test the config flow with preset is a float."""
with patch(
"homeassistant.components.generic_thermostat.async_setup_entry",
return_value=True,
) as mock_setup_entry:
result = await hass.config_entries.flow.async_init(
DOMAIN, context={"source": SOURCE_USER}
)
assert result == snapshot(name="init", include=SNAPSHOT_FLOW_PROPS)
result = await hass.config_entries.flow.async_configure(
result["flow_id"],
{
CONF_NAME: "My thermostat",
CONF_HEATER: "switch.run",
CONF_SENSOR: "sensor.temperature",
CONF_AC_MODE: False,
CONF_COLD_TOLERANCE: 0.3,
CONF_HOT_TOLERANCE: 0.3,
},
)
assert result == snapshot(name="presets", include=SNAPSHOT_FLOW_PROPS)
result = await hass.config_entries.flow.async_configure(
result["flow_id"],
user_input={
CONF_PRESETS[PRESET_AWAY]: 10.4,
},
)
assert result == snapshot(name="create_entry", include=SNAPSHOT_FLOW_PROPS)
await hass.async_block_till_done()
assert len(mock_setup_entry.mock_calls) == 1
assert result["options"] == {
"ac_mode": False,
"away_temp": 10.4,
"cold_tolerance": 0.3,
"heater": "switch.run",
"hot_tolerance": 0.3,
"name": "My thermostat",
"target_sensor": "sensor.temperature",
}