test_simple_switch_with_timerv2.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  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=86400,
  21. device_class=NumberDeviceClass.DURATION,
  22. unit=UnitOfTime.SECONDS,
  23. )
  24. self.mark_secondary(["number_timer", "select_initial_state"])
  25. def test_extra_state_attributes_set(self):
  26. self.assertDictEqual(
  27. self.subject.extra_state_attributes,
  28. {},
  29. )
  30. def test_available(self):
  31. for id, e in self.entities.items():
  32. if id == "select_initial_state":
  33. self.dps[INITIAL_STATE_DPS] = None
  34. self.assertFalse(e.available)
  35. self.dps[INITIAL_STATE_DPS] = "on"
  36. self.assertTrue(e.available)