From 8144a3a307ae2ab96959292074ab569e3cd6f25e Mon Sep 17 00:00:00 2001 From: "Alan D. Tse" Date: Sun, 5 Apr 2020 18:54:04 -0700 Subject: [PATCH] fix: fix failing climate tests --- teslajsonpy/climate.py | 2 +- tests/unit_tests/test_climate.py | 20 +++++++++++++++++--- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/teslajsonpy/climate.py b/teslajsonpy/climate.py index 92c42d1e..da975032 100644 --- a/teslajsonpy/climate.py +++ b/teslajsonpy/climate.py @@ -150,8 +150,8 @@ async def set_preset_mode(self, preset_mode: str) -> None: wake_if_asleep=True, ) if data and data["response"]["result"]: - self.__preset_mode = preset_mode await self.async_update(force=True) + self.__preset_mode = preset_mode @property def preset_mode(self) -> Optional[str]: diff --git a/tests/unit_tests/test_climate.py b/tests/unit_tests/test_climate.py index 72e62296..231173a9 100644 --- a/tests/unit_tests/test_climate.py +++ b/tests/unit_tests/test_climate.py @@ -201,8 +201,8 @@ async def test_set_temperature(monkeypatch): @pytest.mark.asyncio -async def test_set_preset_mode_no_success(monkeypatch): - """Test set_temperature().""" +async def test_set_preset_mode_success(monkeypatch): + """Test set_preset_mode().""" _mock = TeslaMock(monkeypatch) _controller = Controller(None) @@ -218,8 +218,22 @@ async def test_set_preset_mode_no_success(monkeypatch): assert _climate.preset_mode is not None assert _climate.preset_mode == mode + +@pytest.mark.asyncio +async def test_set_preset_mode_invalid_modes(monkeypatch): + """Test set_preset_mode() with invalid modes.""" + + _mock = TeslaMock(monkeypatch) + _controller = Controller(None) + + _data = _mock.data_request_vehicle() + _climate = Climate(_data, _controller) + + await _climate.async_update() + + preset_modes = _climate.preset_modes with pytest.raises(UnknownPresetMode): bad_modes = ["UKNOWN_MODE", "home", "auto", "away", "hot"] for mode in bad_modes: assert mode not in preset_modes - await _climate.set_preset_mode("mode") + await _climate.set_preset_mode(mode)