test_smartplug_encoded.py 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. """Tests for the switch entity."""
  2. from homeassistant.components.switch import SwitchDeviceClass
  3. from homeassistant.const import UnitOfTime
  4. from ..const import SMARTPLUG_ENCODED_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 = "11"
  10. RANDOM_DPS = "101"
  11. CIRCULATE_DPS = "102"
  12. SCHEDULE_DPS = "103"
  13. class TestSwitchEncoded(BasicNumberTests, SwitchableTests, TuyaDeviceTestCase):
  14. __test__ = True
  15. def setUp(self):
  16. self.setUpForConfig("smartplug_encoded.yaml", SMARTPLUG_ENCODED_PAYLOAD)
  17. self.subject = self.entities.get("switch_outlet")
  18. self.setUpSwitchable(SWITCH_DPS, self.subject)
  19. self.setUpBasicNumber(
  20. TIMER_DPS,
  21. self.entities.get("number_timer"),
  22. max=1440.0,
  23. unit=UnitOfTime.MINUTES,
  24. scale=60,
  25. )
  26. self.mark_secondary(["number_timer"])
  27. def test_device_class_is_outlet(self):
  28. self.assertEqual(self.subject.device_class, SwitchDeviceClass.OUTLET)
  29. def test_extra_state_attributes_set(self):
  30. self.dps[RANDOM_DPS] = "101"
  31. self.dps[CIRCULATE_DPS] = "102"
  32. self.dps[SCHEDULE_DPS] = "103"
  33. self.assertDictEqual(
  34. self.subject.extra_state_attributes,
  35. {
  36. "random": "101",
  37. "circulate": "102",
  38. "schedule": "103",
  39. },
  40. )