4
0

test_qoto_03_sprinkler.py 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  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. "unit": "s",
  57. },
  58. ]
  59. )
  60. self.mark_secondary(
  61. [
  62. "binary_sensor_error",
  63. "number_timer",
  64. "sensor_open",
  65. "sensor_timer",
  66. ]
  67. )