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

Parkside charger: update tests for recent change

Jason Rumney 2 лет назад
Родитель
Сommit
4e012e3143
1 измененных файлов с 179 добавлено и 176 удалено
  1. 179 176
      tests/devices/test_parkside_plgs2012a1_smart_charger.py

+ 179 - 176
tests/devices/test_parkside_plgs2012a1_smart_charger.py

@@ -1,176 +1,179 @@
-"""Tests for Parkside PLGS 2012 A1 Smart Charger"""
-from homeassistant.components.number.const import NumberDeviceClass
-from homeassistant.components.sensor import STATE_CLASS_MEASUREMENT, SensorDeviceClass
-from homeassistant.const import (
-    PERCENTAGE,
-    UnitOfElectricCurrent,
-    UnitOfElectricPotential,
-    UnitOfTemperature,
-    UnitOfTime,
-)
-
-from ..const import PARKSIDE_PLGS2012A1_PAYLOAD
-from ..mixins.binary_sensor import MultiBinarySensorTests
-from ..mixins.number import MultiNumberTests
-from ..mixins.select import BasicSelectTests
-from ..mixins.sensor import MultiSensorTests
-from ..mixins.switch import MultiSwitchTests
-from .base_device_tests import TuyaDeviceTestCase
-
-SWITCH_DPS = "1"
-NAME_DPS = "2"
-CURRENT_DPS = "3"
-VOLTAGE_DPS = "4"
-BATTERY_DPS = "5"
-TEMPERATURE_DPS = "6"
-MODE_DPS = "7"
-STORAGE_DPS = "8"
-LIMITER_DPS = "9"
-MAXTEMPCOUNT_DPS = "10"
-UNKNOWN11_DPS = "11"
-MAXCURRENT_DPS = "101"
-REMAIN_DPS = "102"
-ALMOSTCHARGED_DPS = "103"
-FULLYCHARGED_DPS = "104"
-
-
-class TestParksidePLGS2012A1Charger(
-    MultiBinarySensorTests,
-    MultiNumberTests,
-    BasicSelectTests,
-    MultiSensorTests,
-    MultiSwitchTests,
-    TuyaDeviceTestCase,
-):
-    __test__ = True
-
-    def setUp(self):
-        self.setUpForConfig(
-            "parkside_plgs2012a1_smart_charger.yaml", PARKSIDE_PLGS2012A1_PAYLOAD
-        )
-        self.setUpMultiBinarySensors(
-            [
-                {
-                    "name": "binary_sensor_almost_charged",
-                    "dps": ALMOSTCHARGED_DPS,
-                },
-                {
-                    "name": "binary_sensor_fully_charged",
-                    "dps": FULLYCHARGED_DPS,
-                },
-            ],
-        )
-        self.setUpMultiNumber(
-            [
-                {
-                    "name": "number_charge_current",
-                    "dps": CURRENT_DPS,
-                    "device_class": NumberDeviceClass.CURRENT,
-                    "max": 30.000,
-                    "step": 0.1,
-                    "scale": 1000,
-                    "unit": UnitOfElectricCurrent.AMPERE,
-                },
-                {
-                    "name": "number_charge_voltage",
-                    "dps": VOLTAGE_DPS,
-                    "device_class": NumberDeviceClass.VOLTAGE,
-                    "max": 25.0,
-                    "scale": 1000,
-                    "step": 0.1,
-                    "unit": UnitOfElectricPotential.VOLT,
-                },
-            ],
-        )
-        self.setUpBasicSelect(
-            MODE_DPS,
-            self.entities.get("select_charge_type"),
-            {
-                "ECO": "Eco",
-                "quick": "Performance",
-                "standard": "Balanced",
-                "individual": "Expert",
-            },
-        )
-        self.setUpMultiSensors(
-            [
-                {
-                    "name": "sensor_battery",
-                    "dps": BATTERY_DPS,
-                    "unit": PERCENTAGE,
-                    "device_class": SensorDeviceClass.BATTERY,
-                },
-                {
-                    "name": "sensor_time_remaining",
-                    "dps": REMAIN_DPS,
-                    "unit": UnitOfTime.MINUTES,
-                    "device_class": SensorDeviceClass.DURATION,
-                },
-                {
-                    "name": "sensor_temperature",
-                    "dps": TEMPERATURE_DPS,
-                    "unit": UnitOfTemperature.CELSIUS,
-                    "device_class": SensorDeviceClass.TEMPERATURE,
-                    "state_class": STATE_CLASS_MEASUREMENT,
-                },
-                {
-                    "name": "sensor_max_current",
-                    "dps": MAXCURRENT_DPS,
-                    "unit": UnitOfElectricCurrent.AMPERE,
-                    "device_class": SensorDeviceClass.CURRENT,
-                    "testdata": (1234, 1.234),
-                },
-                {
-                    "name": "sensor_max_temperature_count",
-                    "dps": MAXTEMPCOUNT_DPS,
-                },
-                {
-                    "name": "sensor_name",
-                    "dps": NAME_DPS,
-                    "testdata": ("test", "test"),
-                },
-            ],
-        )
-        self.setUpMultiSwitch(
-            [
-                {
-                    "name": "switch",
-                    "dps": SWITCH_DPS,
-                },
-                {
-                    "name": "switch_storage",
-                    "dps": STORAGE_DPS,
-                },
-                {
-                    "name": "switch_temperature_limiter",
-                    "dps": LIMITER_DPS,
-                },
-            ],
-        )
-
-        self.mark_secondary(
-            [
-                "number_charge_current",
-                "number_charge_voltage",
-                "switch_storage",
-                "switch_temperature_limiter",
-                "sensor_temperature",
-                "sensor_max_temperature_count",
-                "sensor_name",
-                "select_charge_type",
-                "sensor_max_current",
-                "binary_sensor_almost_charged",
-                "binary_sensor_fully_charged",
-            ]
-        )
-
-    def test_multi_switch_state_attributes(self):
-        switch = self.multiSwitch.get("switch")
-        storage = self.multiSwitch.get("switch_storage")
-        temp = self.multiSwitch.get("switch_temperature_limiter")
-        self.assertEqual(storage.extra_state_attributes, {})
-        self.assertEqual(temp.extra_state_attributes, {})
-        self.dps[UNKNOWN11_DPS] = "unknown_11"
-        self.assertDictEqual(
-            switch.extra_state_attributes, {"unknown_11": "unknown_11"}
-        )
+"""Tests for Parkside PLGS 2012 A1 Smart Charger"""
+from homeassistant.components.binary_sensor import BinarySensorDeviceClass
+from homeassistant.components.number.const import NumberDeviceClass
+from homeassistant.components.sensor import STATE_CLASS_MEASUREMENT, SensorDeviceClass
+from homeassistant.const import (
+    PERCENTAGE,
+    UnitOfElectricCurrent,
+    UnitOfElectricPotential,
+    UnitOfTemperature,
+    UnitOfTime,
+)
+
+from ..const import PARKSIDE_PLGS2012A1_PAYLOAD
+from ..mixins.binary_sensor import MultiBinarySensorTests
+from ..mixins.number import MultiNumberTests
+from ..mixins.select import BasicSelectTests
+from ..mixins.sensor import MultiSensorTests
+from ..mixins.switch import MultiSwitchTests
+from .base_device_tests import TuyaDeviceTestCase
+
+SWITCH_DPS = "1"
+NAME_DPS = "2"
+CURRENT_DPS = "3"
+VOLTAGE_DPS = "4"
+BATTERY_DPS = "5"
+TEMPERATURE_DPS = "6"
+MODE_DPS = "7"
+STORAGE_DPS = "8"
+LIMITER_DPS = "9"
+MAXTEMPCOUNT_DPS = "10"
+FAULT_DPS = "11"
+MAXCURRENT_DPS = "101"
+REMAIN_DPS = "102"
+ALMOSTCHARGED_DPS = "103"
+FULLYCHARGED_DPS = "104"
+
+
+class TestParksidePLGS2012A1Charger(
+    MultiBinarySensorTests,
+    MultiNumberTests,
+    BasicSelectTests,
+    MultiSensorTests,
+    MultiSwitchTests,
+    TuyaDeviceTestCase,
+):
+    __test__ = True
+
+    def setUp(self):
+        self.setUpForConfig(
+            "parkside_plgs2012a1_smart_charger.yaml", PARKSIDE_PLGS2012A1_PAYLOAD
+        )
+        self.setUpMultiBinarySensors(
+            [
+                {
+                    "name": "binary_sensor_almost_charged",
+                    "dps": ALMOSTCHARGED_DPS,
+                },
+                {
+                    "name": "binary_sensor_fully_charged",
+                    "dps": FULLYCHARGED_DPS,
+                },
+                {
+                    "name": "binary_sensor_fault",
+                    "dps": FAULT_DPS,
+                    "device_class": BinarySensorDeviceClass.PROBLEM,
+                    "testdata": (32, 0),
+                },
+            ],
+        )
+        self.setUpMultiNumber(
+            [
+                {
+                    "name": "number_charge_current",
+                    "dps": CURRENT_DPS,
+                    "device_class": NumberDeviceClass.CURRENT,
+                    "max": 30.000,
+                    "step": 0.1,
+                    "scale": 1000,
+                    "unit": UnitOfElectricCurrent.AMPERE,
+                },
+                {
+                    "name": "number_charge_voltage",
+                    "dps": VOLTAGE_DPS,
+                    "device_class": NumberDeviceClass.VOLTAGE,
+                    "max": 25.0,
+                    "scale": 1000,
+                    "step": 0.1,
+                    "unit": UnitOfElectricPotential.VOLT,
+                },
+            ],
+        )
+        self.setUpBasicSelect(
+            MODE_DPS,
+            self.entities.get("select_charge_type"),
+            {
+                "ECO": "Eco",
+                "quick": "Performance",
+                "standard": "Balanced",
+                "individual": "Expert",
+            },
+        )
+        self.setUpMultiSensors(
+            [
+                {
+                    "name": "sensor_battery",
+                    "dps": BATTERY_DPS,
+                    "unit": PERCENTAGE,
+                    "device_class": SensorDeviceClass.BATTERY,
+                },
+                {
+                    "name": "sensor_time_remaining",
+                    "dps": REMAIN_DPS,
+                    "unit": UnitOfTime.MINUTES,
+                    "device_class": SensorDeviceClass.DURATION,
+                },
+                {
+                    "name": "sensor_temperature",
+                    "dps": TEMPERATURE_DPS,
+                    "unit": UnitOfTemperature.CELSIUS,
+                    "device_class": SensorDeviceClass.TEMPERATURE,
+                    "state_class": STATE_CLASS_MEASUREMENT,
+                },
+                {
+                    "name": "sensor_max_current",
+                    "dps": MAXCURRENT_DPS,
+                    "unit": UnitOfElectricCurrent.AMPERE,
+                    "device_class": SensorDeviceClass.CURRENT,
+                    "testdata": (1234, 1.234),
+                },
+                {
+                    "name": "sensor_max_temperature_count",
+                    "dps": MAXTEMPCOUNT_DPS,
+                },
+            ],
+        )
+        self.setUpMultiSwitch(
+            [
+                {
+                    "name": "switch",
+                    "dps": SWITCH_DPS,
+                },
+                {
+                    "name": "switch_storage",
+                    "dps": STORAGE_DPS,
+                },
+                {
+                    "name": "switch_temperature_limiter",
+                    "dps": LIMITER_DPS,
+                },
+            ],
+        )
+
+        self.mark_secondary(
+            [
+                "number_charge_current",
+                "number_charge_voltage",
+                "switch_storage",
+                "switch_temperature_limiter",
+                "sensor_temperature",
+                "sensor_max_temperature_count",
+                "select_charge_type",
+                "sensor_max_current",
+                "binary_sensor_almost_charged",
+                "binary_sensor_fully_charged",
+                "binary_sensor_fault",
+            ]
+        )
+
+    def test_multi_switch_state_attributes(self):
+        switch = self.multiSwitch.get("switch")
+        storage = self.multiSwitch.get("switch_storage")
+        temp = self.multiSwitch.get("switch_temperature_limiter")
+        self.assertEqual(storage.extra_state_attributes, {})
+        self.assertEqual(temp.extra_state_attributes, {})
+        self.dps[FAULT_DPS] = 32
+        self.dps[NAME_DPS] = "test"
+        self.assertDictEqual(
+            switch.extra_state_attributes, {"model": "test", "fault_code": 32}
+        )