test_simple_switch_with_timerv2.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  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(["number_timer", "select_initial_state"])
  26. def test_extra_state_attributes_set(self):
  27. self.assertDictEqual(
  28. self.subject.extra_state_attributes,
  29. {},
  30. )
  31. def test_available(self):
  32. for id, e in self.entities.items():
  33. if id == "select_initial_state":
  34. self.dps[INITIAL_STATE_DPS] = None
  35. self.assertFalse(e.available)
  36. self.dps[INITIAL_STATE_DPS] = "on"
  37. self.assertTrue(e.available)