Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion homeassistant/components/mqtt/climate.py
Original file line number Diff line number Diff line change
Expand Up @@ -640,7 +640,7 @@ def preset_mode(self):
return self._hold
if self._away:
return PRESET_AWAY
return None
return PRESET_NONE
Comment thread
MartinHjelmare marked this conversation as resolved.

@property
def preset_modes(self):
Expand Down
24 changes: 12 additions & 12 deletions tests/components/mqtt/test_climate.py
Original file line number Diff line number Diff line change
Expand Up @@ -438,23 +438,23 @@ async def test_set_away_mode_pessimistic(hass, mqtt_mock):
await hass.async_block_till_done()

state = hass.states.get(ENTITY_CLIMATE)
assert state.attributes.get("preset_mode") is None
assert state.attributes.get("preset_mode") == "none"
Comment thread
MartinHjelmare marked this conversation as resolved.

await common.async_set_preset_mode(hass, "away", ENTITY_CLIMATE)
state = hass.states.get(ENTITY_CLIMATE)
assert state.attributes.get("preset_mode") is None
assert state.attributes.get("preset_mode") == "none"

async_fire_mqtt_message(hass, "away-state", "ON")
state = hass.states.get(ENTITY_CLIMATE)
assert state.attributes.get("preset_mode") == "away"

async_fire_mqtt_message(hass, "away-state", "OFF")
state = hass.states.get(ENTITY_CLIMATE)
assert state.attributes.get("preset_mode") is None
assert state.attributes.get("preset_mode") == "none"

async_fire_mqtt_message(hass, "away-state", "nonsense")
state = hass.states.get(ENTITY_CLIMATE)
assert state.attributes.get("preset_mode") is None
assert state.attributes.get("preset_mode") == "none"


async def test_set_away_mode(hass, mqtt_mock):
Expand All @@ -467,7 +467,7 @@ async def test_set_away_mode(hass, mqtt_mock):
await hass.async_block_till_done()

state = hass.states.get(ENTITY_CLIMATE)
assert state.attributes.get("preset_mode") is None
assert state.attributes.get("preset_mode") == "none"
await common.async_set_preset_mode(hass, "away", ENTITY_CLIMATE)
mqtt_mock.async_publish.assert_called_once_with("away-mode-topic", "AN", 0, False)
mqtt_mock.async_publish.reset_mock()
Expand All @@ -477,7 +477,7 @@ async def test_set_away_mode(hass, mqtt_mock):
await common.async_set_preset_mode(hass, PRESET_NONE, ENTITY_CLIMATE)
mqtt_mock.async_publish.assert_called_once_with("away-mode-topic", "AUS", 0, False)
state = hass.states.get(ENTITY_CLIMATE)
assert state.attributes.get("preset_mode") is None
assert state.attributes.get("preset_mode") == "none"

await common.async_set_preset_mode(hass, "hold-on", ENTITY_CLIMATE)
mqtt_mock.async_publish.reset_mock()
Expand Down Expand Up @@ -525,7 +525,7 @@ async def test_set_hold_pessimistic(hass, mqtt_mock):

async_fire_mqtt_message(hass, "hold-state", "off")
state = hass.states.get(ENTITY_CLIMATE)
assert state.attributes.get("preset_mode") is None
assert state.attributes.get("preset_mode") == "none"


async def test_set_hold(hass, mqtt_mock):
Expand All @@ -534,7 +534,7 @@ async def test_set_hold(hass, mqtt_mock):
await hass.async_block_till_done()

state = hass.states.get(ENTITY_CLIMATE)
assert state.attributes.get("preset_mode") is None
assert state.attributes.get("preset_mode") == "none"
await common.async_set_preset_mode(hass, "hold-on", ENTITY_CLIMATE)
mqtt_mock.async_publish.assert_called_once_with("hold-topic", "hold-on", 0, False)
mqtt_mock.async_publish.reset_mock()
Expand All @@ -550,7 +550,7 @@ async def test_set_hold(hass, mqtt_mock):
await common.async_set_preset_mode(hass, PRESET_NONE, ENTITY_CLIMATE)
mqtt_mock.async_publish.assert_called_once_with("hold-topic", "off", 0, False)
state = hass.states.get(ENTITY_CLIMATE)
assert state.attributes.get("preset_mode") is None
assert state.attributes.get("preset_mode") == "none"


async def test_set_preset_mode_twice(hass, mqtt_mock):
Expand All @@ -559,7 +559,7 @@ async def test_set_preset_mode_twice(hass, mqtt_mock):
await hass.async_block_till_done()

state = hass.states.get(ENTITY_CLIMATE)
assert state.attributes.get("preset_mode") is None
assert state.attributes.get("preset_mode") == "none"
await common.async_set_preset_mode(hass, "hold-on", ENTITY_CLIMATE)
mqtt_mock.async_publish.assert_called_once_with("hold-topic", "hold-on", 0, False)
mqtt_mock.async_publish.reset_mock()
Expand Down Expand Up @@ -735,15 +735,15 @@ async def test_set_with_templates(hass, mqtt_mock, caplog):
assert state.attributes.get("temperature") == 1031

# Away Mode
assert state.attributes.get("preset_mode") is None
assert state.attributes.get("preset_mode") == "none"
async_fire_mqtt_message(hass, "away-state", '"ON"')
state = hass.states.get(ENTITY_CLIMATE)
assert state.attributes.get("preset_mode") == "away"

# Away Mode with JSON values
async_fire_mqtt_message(hass, "away-state", "false")
state = hass.states.get(ENTITY_CLIMATE)
assert state.attributes.get("preset_mode") is None
assert state.attributes.get("preset_mode") == "none"

async_fire_mqtt_message(hass, "away-state", "true")
state = hass.states.get(ENTITY_CLIMATE)
Expand Down