test_simple_switch_with_timerv2.py 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. """Tests for a simple switch with timer"""
  2. from homeassistant.components.number import NumberDeviceClass
  3. from homeassistant.const import UnitOfTime
  4. from ..const import TIMED_SOCKETV2_PAYLOAD
  5. from ..mixins.number import BasicNumberTests
  6. from ..mixins.switch import SwitchableTests
  7. from .base_device_tests import TuyaDeviceTestCase
  8. SWITCH_DPS = "1"
  9. TIMER_DPS = "9"
  10. INITIAL_STATE_DPS = "38"
  11. class TestTimedSwitch(BasicNumberTests, SwitchableTests, TuyaDeviceTestCase):
  12. __test__ = True
  13. def setUp(self):
  14. self.setUpForConfig("simple_switch_timerv2.yaml", TIMED_SOCKETV2_PAYLOAD)
  15. self.subject = self.entities.get("switch")
  16. self.setUpSwitchable(SWITCH_DPS, self.subject)
  17. self.setUpBasicNumber(
  18. TIMER_DPS,
  19. self.entities.get("number_timer"),
  20. max=1440,
  21. scale=60,
  22. device_class=NumberDeviceClass.DURATION,
  23. unit=UnitOfTime.MINUTES,
  24. )
  25. self.mark_secondary(
  26. [
  27. "number_timer",
  28. "select_initial_state",
  29. "time_timer",
  30. ]
  31. )
  32. def test_extra_state_attributes_set(self):
  33. self.assertDictEqual(
  34. self.subject.extra_state_attributes,
  35. {},
  36. )
  37. def test_available(self):
  38. for id, e in self.entities.items():
  39. if id == "select_initial_state":
  40. self.dps[INITIAL_STATE_DPS] = None
  41. self.assertFalse(e.available)
  42. self.dps[INITIAL_STATE_DPS] = "on"
  43. self.assertTrue(e.available)