test_eurom_600_heater.py 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. from homeassistant.components.binary_sensor import BinarySensorDeviceClass
  2. from homeassistant.components.climate.const import ClimateEntityFeature, HVACMode
  3. from homeassistant.const import UnitOfTemperature
  4. from ..const import EUROM_600_HEATER_PAYLOAD
  5. from ..helpers import assert_device_properties_set
  6. from ..mixins.binary_sensor import BasicBinarySensorTests
  7. from ..mixins.climate import TargetTemperatureTests
  8. from .base_device_tests import TuyaDeviceTestCase
  9. HVACMODE_DPS = "1"
  10. TEMPERATURE_DPS = "2"
  11. CURRENTTEMP_DPS = "5"
  12. ERROR_DPS = "6"
  13. class TestEurom600Heater(
  14. BasicBinarySensorTests, TargetTemperatureTests, TuyaDeviceTestCase
  15. ):
  16. def setUp(self):
  17. self.setUpForConfig("eurom_600_heater.yaml", EUROM_600_HEATER_PAYLOAD)
  18. self.subject = self.entities.get("climate")
  19. self.setUpTargetTemperature(
  20. TEMPERATURE_DPS,
  21. self.subject,
  22. min=0.0,
  23. max=37.0,
  24. )
  25. self.setUpBasicBinarySensor(
  26. ERROR_DPS,
  27. self.entities.get("binary_sensor_problem"),
  28. device_class=BinarySensorDeviceClass.PROBLEM,
  29. testdata=(1, 0),
  30. )
  31. self.mark_secondary(["binary_sensor_problem"])
  32. def test_supported_features(self):
  33. self.assertEqual(
  34. self.subject.supported_features,
  35. ClimateEntityFeature.TARGET_TEMPERATURE
  36. | ClimateEntityFeature.TURN_OFF
  37. | ClimateEntityFeature.TURN_ON,
  38. )
  39. def test_temperature_unit_returns_celsius(self):
  40. self.assertEqual(self.subject.temperature_unit, UnitOfTemperature.CELSIUS)
  41. def test_current_temperature(self):
  42. self.dps[CURRENTTEMP_DPS] = 25
  43. self.assertEqual(self.subject.current_temperature, 25)
  44. def test_hvac_mode(self):
  45. self.dps[HVACMODE_DPS] = True
  46. self.assertEqual(self.subject.hvac_mode, HVACMode.HEAT)
  47. self.dps[HVACMODE_DPS] = False
  48. self.assertEqual(self.subject.hvac_mode, HVACMode.OFF)
  49. def test_hvac_modes(self):
  50. self.assertCountEqual(self.subject.hvac_modes, [HVACMode.OFF, HVACMode.HEAT])
  51. async def test_turn_on(self):
  52. async with assert_device_properties_set(
  53. self.subject._device, {HVACMODE_DPS: True}
  54. ):
  55. await self.subject.async_set_hvac_mode(HVACMode.HEAT)
  56. async def test_turn_off(self):
  57. async with assert_device_properties_set(
  58. self.subject._device, {HVACMODE_DPS: False}
  59. ):
  60. await self.subject.async_set_hvac_mode(HVACMode.OFF)
  61. def test_basic_bsensor_extra_state_attributes(self):
  62. self.dps[ERROR_DPS] = 2
  63. self.assertEqual(self.basicBSensor.extra_state_attributes, {"fault_code": 2})