test_smartplugv2.py 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. """Tests for the switch entity."""
  2. from homeassistant.components.switch import DEVICE_CLASS_OUTLET
  3. from homeassistant.const import DEVICE_CLASS_CURRENT, DEVICE_CLASS_VOLTAGE
  4. from ..const import KOGAN_SOCKET_PAYLOAD2
  5. from ..mixins.number import BasicNumberTests
  6. from ..mixins.sensor import MultiSensorTests
  7. from ..mixins.switch import SwitchableTests
  8. from .base_device_tests import TuyaDeviceTestCase
  9. SWITCH_DPS = "1"
  10. TIMER_DPS = "9"
  11. CURRENT_DPS = "18"
  12. POWER_DPS = "19"
  13. VOLTAGE_DPS = "20"
  14. class TestSwitchV2(
  15. BasicNumberTests, MultiSensorTests, SwitchableTests, TuyaDeviceTestCase
  16. ):
  17. __test__ = True
  18. def setUp(self):
  19. self.setUpForConfig("smartplugv2.yaml", KOGAN_SOCKET_PAYLOAD2)
  20. self.subject = self.entities.get("switch")
  21. self.setUpSwitchable(SWITCH_DPS, self.subject)
  22. self.setUpBasicNumber(TIMER_DPS, self.entities.get("number_timer"), max=1440)
  23. self.setUpMultiSensors(
  24. [
  25. {
  26. "name": "sensor_voltage",
  27. "dps": VOLTAGE_DPS,
  28. "unit": "V",
  29. "device_class": DEVICE_CLASS_VOLTAGE,
  30. "state_class": "measurement",
  31. "testdata": (2300, 230.0),
  32. },
  33. {
  34. "name": "sensor_current",
  35. "dps": CURRENT_DPS,
  36. "unit": "mA",
  37. "device_class": DEVICE_CLASS_CURRENT,
  38. "state_class": "measurement",
  39. },
  40. ]
  41. )
  42. def test_device_class_is_outlet(self):
  43. self.assertEqual(self.subject.device_class, DEVICE_CLASS_OUTLET)
  44. def test_current_power_w(self):
  45. self.dps[POWER_DPS] = 1234
  46. self.assertEqual(self.subject.current_power_w, 123.4)
  47. def test_device_state_attributes_set(self):
  48. self.dps[TIMER_DPS] = 1
  49. self.dps[VOLTAGE_DPS] = 2350
  50. self.dps[CURRENT_DPS] = 1234
  51. self.dps[POWER_DPS] = 5678
  52. self.assertDictEqual(
  53. self.subject.device_state_attributes,
  54. {
  55. "timer": 1,
  56. "current_a": 1.234,
  57. "voltage_v": 235.0,
  58. "current_power_w": 567.8,
  59. },
  60. )