Просмотр исходного кода

Update tests for added ERROR_CODE attribute.

Make tank_full_or_missing method always return a boolean even when Error is not present.
Jason Rumney 5 лет назад
Родитель
Сommit
b8dc8ba191

+ 5 - 8
custom_components/tuya_local/dehumidifier/climate.py

@@ -272,13 +272,10 @@ class GoldairDehumidifier(ClimateEntity):
     @property
     def tank_full_or_missing(self):
         error = self._device.get_property(PROPERTY_TO_DPS_ID[ATTR_ERROR])
-        if error is not None:
-            return (
-                TuyaLocalDevice.get_key_for_value(ERROR_CODE_TO_DPS_CODE, error)
-                == ERROR_TANK
-            )
-        else:
-            return None
+        return (
+            TuyaLocalDevice.get_key_for_value(ERROR_CODE_TO_DPS_CODE, error)
+            == ERROR_TANK
+        )
 
     @property
     def defrosting(self):
@@ -293,7 +290,7 @@ class GoldairDehumidifier(ClimateEntity):
                 ERROR_CODE_TO_DPS_CODE, error_code, f"Error {error_code}"
             )
         else:
-            error = "Unavailable"
+            error = STATE_UNAVAILABLE
 
         return {
             ATTR_ERROR: error,

+ 21 - 4
tests/dehumidifier/test_climate.py

@@ -21,6 +21,7 @@ from custom_components.tuya_local.dehumidifier.const import (
     ATTR_AIR_CLEAN_ON,
     ATTR_DEFROSTING,
     ATTR_ERROR,
+    ATTR_ERROR_CODE,
     ATTR_TARGET_HUMIDITY,
     ERROR_CODE_TO_DPS_CODE,
     ERROR_TANK,
@@ -550,28 +551,44 @@ class TestGoldairDehumidifier(IsolatedAsyncioTestCase):
         self.dps[PROPERTY_TO_DPS_ID[ATTR_DEFROSTING]] = False
         self.assertEqual(
             self.subject.device_state_attributes,
-            {ATTR_ERROR: None, ATTR_DEFROSTING: False},
+            {
+                ATTR_ERROR_CODE: None,
+                ATTR_ERROR: STATE_UNAVAILABLE,
+                ATTR_DEFROSTING: False,
+            },
         )
 
         self.dps[PROPERTY_TO_DPS_ID[ATTR_ERROR]] = ERROR_CODE_TO_DPS_CODE[ERROR_TANK]
         self.dps[PROPERTY_TO_DPS_ID[ATTR_DEFROSTING]] = False
         self.assertEqual(
             self.subject.device_state_attributes,
-            {ATTR_ERROR: ERROR_TANK, ATTR_DEFROSTING: False},
+            {
+                ATTR_ERROR: ERROR_TANK,
+                ATTR_ERROR_CODE: ERROR_CODE_TO_DPS_CODE[ERROR_TANK],
+                ATTR_DEFROSTING: False,
+            },
         )
 
         self.dps[PROPERTY_TO_DPS_ID[ATTR_ERROR]] = None
         self.dps[PROPERTY_TO_DPS_ID[ATTR_DEFROSTING]] = True
         self.assertEqual(
             self.subject.device_state_attributes,
-            {ATTR_ERROR: None, ATTR_DEFROSTING: True},
+            {
+                ATTR_ERROR_CODE: None,
+                ATTR_ERROR: STATE_UNAVAILABLE,
+                ATTR_DEFROSTING: True,
+            },
         )
 
         self.dps[PROPERTY_TO_DPS_ID[ATTR_ERROR]] = ERROR_CODE_TO_DPS_CODE[ERROR_TANK]
         self.dps[PROPERTY_TO_DPS_ID[ATTR_DEFROSTING]] = True
         self.assertEqual(
             self.subject.device_state_attributes,
-            {ATTR_ERROR: ERROR_TANK, ATTR_DEFROSTING: True},
+            {
+                ATTR_ERROR: ERROR_TANK,
+                ATTR_ERROR_CODE: ERROR_CODE_TO_DPS_CODE[ERROR_TANK],
+                ATTR_DEFROSTING: True,
+            },
         )
 
     async def test_update(self):