test_simple_switch_with_timerv2.py 1.3 KB

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