Browse Source

Fix sensor option tests

- add enum class to orion smartlock alert sensor, and vork air quality sensor.
Jason Rumney 3 years ago
parent
commit
552b971de3

+ 2 - 0
custom_components/tuya_local/devices/orion_smart_lock.yaml

@@ -50,6 +50,8 @@ primary_entity:
 secondary_entities:
   - entity: sensor
     name: Alert
+    class: enum
+    icon: "mdi:alert"
     category: diagnostic
     dps:
       - id: 8

+ 1 - 0
custom_components/tuya_local/devices/vork_vk6067aw_purifier.yaml

@@ -90,6 +90,7 @@ secondary_entities:
   - entity: sensor
     name: Air quality
     category: diagnostic
+    class: enum
     icon: "mdi:air-filter"
     dps:
       - id: 21

+ 1 - 0
tests/devices/test_devola_patio_heater.py

@@ -65,6 +65,7 @@ class TestDevolaPatioHeater(
                     "unit": PERCENTAGE,
                     "device_class": SensorDeviceClass.POWER_FACTOR,
                     "testdata": ("2", 50),
+                    "options": [25, 50, 75, 100],
                 },
                 {
                     "dps": MODE_DPS,

+ 16 - 0
tests/devices/test_orion_smartlock.py

@@ -52,6 +52,22 @@ class TestOrionSmartLock(
                     "dps": ERROR_DP,
                     "name": "sensor_alert",
                     "testdata": (512, "key_left_in"),
+                    "device_class": SensorDeviceClass.ENUM,
+                    "options": [
+                        "wrong_finger",
+                        "wrong_password",
+                        "wrong_card",
+                        "wrong_face",
+                        "lock_jammed_closed",
+                        "high_temperature",
+                        "open_too_long",
+                        "lock_jammed_open",
+                        "lock_forced",
+                        "key_left_in",
+                        "battery_dead",
+                        "battery_low",
+                        "shock",
+                    ],
                 },
                 {
                     "dps": BATTERY_DP,

+ 3 - 0
tests/devices/test_vork_vk6067aw_purifier.py

@@ -1,6 +1,7 @@
 from homeassistant.components.binary_sensor import BinarySensorDeviceClass
 from homeassistant.components.button import ButtonDeviceClass
 from homeassistant.components.fan import FanEntityFeature
+from homeassistant.components.sensor import SensorDeviceClass
 from homeassistant.const import (
     PERCENTAGE,
     UnitOfTime,
@@ -70,7 +71,9 @@ class TestVorkVK6267AWPurifier(
                 {
                     "dps": AQI_DPS,
                     "name": "sensor_air_quality",
+                    "device_class": SensorDeviceClass.ENUM,
                     "testdata": ("great", "Great"),
+                    "options": ["Great", "Good", "Severe", "Medium"],
                 },
                 {
                     "dps": COUNTDOWN_DPS,

+ 1 - 0
tests/devices/test_wetair_wawh1210lw_humidifier.py

@@ -61,6 +61,7 @@ class TestWetairWAWH1210LWHumidifier(
                     "dps": LEVEL_DPS,
                     "name": "sensor_water_level",
                     "unit": PERCENTAGE,
+                    "options": [0, 50, 100],
                 },
             ]
         )

+ 8 - 5
tests/mixins/sensor.py

@@ -112,8 +112,11 @@ class MultiSensorTests:
 
     def test_multi_sensor_options(self):
         for key, subject in self.multiSensor.items():
-            self.assertEqual(
-                subject.options,
-                self.multiSensorOptions[key],
-                f"{key} options not as expected",
-            )
+            if self.multiSensorOptions[key]:
+                self.assertCountEqual(
+                    subject.options,
+                    self.multiSensorOptions[key],
+                    f"{key} options not as expected",
+                )
+            else:
+                self.assertIsNone(subject.options)