test_kogan_glass_1_7l_kettle.py 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. from homeassistant.components.climate.const import (
  2. HVAC_MODE_HEAT,
  3. HVAC_MODE_OFF,
  4. SUPPORT_PRESET_MODE,
  5. )
  6. from homeassistant.const import STATE_UNAVAILABLE
  7. from ..const import KOGAN_GLASS_1_7L_KETTLE_PAYLOAD
  8. from ..helpers import assert_device_properties_set
  9. from .base_device_tests import TuyaDeviceTestCase
  10. HVACMODE_DPS = "1"
  11. CURRENTTEMP_DPS = "5"
  12. PRESET_DPS = "102"
  13. class TestKoganGlass1_7LKettle(TuyaDeviceTestCase):
  14. __test__ = True
  15. def setUp(self):
  16. self.setUpForConfig(
  17. "kogan_glass_1_7l_kettle.yaml",
  18. KOGAN_GLASS_1_7L_KETTLE_PAYLOAD,
  19. )
  20. self.subject = self.entities.get("climate")
  21. def test_supported_features(self):
  22. self.assertEqual(
  23. self.subject.supported_features,
  24. SUPPORT_PRESET_MODE,
  25. )
  26. def test_icon(self):
  27. self.dps[HVACMODE_DPS] = True
  28. self.assertEqual(self.subject.icon, "mdi:kettle")
  29. self.dps[HVACMODE_DPS] = False
  30. self.assertEqual(self.subject.icon, "mdi:kettle-off")
  31. def test_current_temperature(self):
  32. self.dps[CURRENTTEMP_DPS] = 85
  33. self.assertEqual(self.subject.current_temperature, 85)
  34. def test_hvac_modes(self):
  35. self.assertCountEqual(
  36. self.subject.hvac_modes,
  37. [HVAC_MODE_HEAT, HVAC_MODE_OFF],
  38. )
  39. def test_hvac_mode(self):
  40. self.dps[HVACMODE_DPS] = False
  41. self.assertEqual(self.subject.hvac_mode, HVAC_MODE_OFF)
  42. self.dps[HVACMODE_DPS] = True
  43. self.assertEqual(self.subject.hvac_mode, HVAC_MODE_HEAT)
  44. async def test_turn_on(self):
  45. async with assert_device_properties_set(
  46. self.subject._device,
  47. {HVACMODE_DPS: True},
  48. ):
  49. await self.subject.async_set_hvac_mode(HVAC_MODE_HEAT)
  50. async def test_turn_off(self):
  51. async with assert_device_properties_set(
  52. self.subject._device,
  53. {HVACMODE_DPS: False},
  54. ):
  55. await self.subject.async_set_hvac_mode(HVAC_MODE_OFF)
  56. def test_preset_modes(self):
  57. self.assertCountEqual(
  58. self.subject.preset_modes,
  59. ["40", "50", "60", "80", "90", "Current Temp"],
  60. )
  61. def test_preset_mode(self):
  62. self.dps[PRESET_DPS] = "40"
  63. self.assertEqual(self.subject.preset_mode, "40")
  64. self.dps[PRESET_DPS] = "50"
  65. self.assertEqual(self.subject.preset_mode, "50")
  66. self.dps[PRESET_DPS] = "60"
  67. self.assertEqual(self.subject.preset_mode, "60")
  68. self.dps[PRESET_DPS] = "80"
  69. self.assertEqual(self.subject.preset_mode, "80")
  70. self.dps[PRESET_DPS] = "90"
  71. self.assertEqual(self.subject.preset_mode, "90")
  72. self.dps[PRESET_DPS] = "currenttemp"
  73. self.assertEqual(self.subject.preset_mode, "Current Temp")
  74. async def test_set_preset_to_40(self):
  75. async with assert_device_properties_set(
  76. self.subject._device,
  77. {PRESET_DPS: "40"},
  78. ):
  79. await self.subject.async_set_preset_mode("40")
  80. async def test_set_preset_to_50(self):
  81. async with assert_device_properties_set(
  82. self.subject._device,
  83. {PRESET_DPS: "50"},
  84. ):
  85. await self.subject.async_set_preset_mode("50")
  86. async def test_set_preset_to_60(self):
  87. async with assert_device_properties_set(
  88. self.subject._device,
  89. {PRESET_DPS: "60"},
  90. ):
  91. await self.subject.async_set_preset_mode("60")
  92. async def test_set_preset_to_80(self):
  93. async with assert_device_properties_set(
  94. self.subject._device,
  95. {PRESET_DPS: "80"},
  96. ):
  97. await self.subject.async_set_preset_mode("80")
  98. async def test_set_preset_to_90(self):
  99. async with assert_device_properties_set(
  100. self.subject._device,
  101. {PRESET_DPS: "90"},
  102. ):
  103. await self.subject.async_set_preset_mode("90")
  104. async def test_set_preset_to_currenttemp(self):
  105. async with assert_device_properties_set(
  106. self.subject._device,
  107. {PRESET_DPS: "currenttemp"},
  108. ):
  109. await self.subject.async_set_preset_mode("Current Temp")