test_qoto_03_sprinkler.py 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. """Tests for the Quto 03 Sprinkler."""
  2. from homeassistant.components.binary_sensor import BinarySensorDeviceClass
  3. from homeassistant.const import PERCENTAGE, UnitOfTime
  4. from ..const import QOTO_SPRINKLER_PAYLOAD
  5. from ..mixins.binary_sensor import BasicBinarySensorTests
  6. from ..mixins.number import MultiNumberTests
  7. from ..mixins.sensor import MultiSensorTests
  8. from .base_device_tests import TuyaDeviceTestCase
  9. TARGET_DPS = "102"
  10. CURRENT_DPS = "103"
  11. COUNTDOWN_DPS = "104"
  12. TIMER_DPS = "105"
  13. ERROR_DPS = "108"
  14. class TestQotoSprinkler(
  15. BasicBinarySensorTests,
  16. MultiNumberTests,
  17. MultiSensorTests,
  18. TuyaDeviceTestCase,
  19. ):
  20. __test__ = True
  21. def setUp(self):
  22. self.setUpForConfig("qoto_03_sprinkler.yaml", QOTO_SPRINKLER_PAYLOAD)
  23. self.setUpBasicBinarySensor(
  24. ERROR_DPS,
  25. self.entities.get("binary_sensor_error"),
  26. device_class=BinarySensorDeviceClass.PROBLEM,
  27. testdata=(1, 0),
  28. )
  29. self.setUpMultiNumber(
  30. [
  31. {
  32. "name": "number",
  33. "dps": TARGET_DPS,
  34. "max": 100,
  35. "step": 5,
  36. "unit": PERCENTAGE,
  37. },
  38. {
  39. "name": "number_timer",
  40. "dps": TIMER_DPS,
  41. "max": 86399,
  42. "unit": UnitOfTime.SECONDS,
  43. },
  44. ]
  45. )
  46. self.setUpMultiSensors(
  47. [
  48. {
  49. "name": "sensor_open",
  50. "dps": CURRENT_DPS,
  51. "unit": "%",
  52. },
  53. {
  54. "name": "sensor_timer",
  55. "dps": COUNTDOWN_DPS,
  56. "device_class": "duration",
  57. "unit": "s",
  58. },
  59. ]
  60. )
  61. self.mark_secondary(
  62. [
  63. "binary_sensor_error",
  64. "number_timer",
  65. "sensor_open",
  66. "sensor_timer",
  67. ]
  68. )