From 85dcbc0903a1dd95f8e4e5f3c5d29cd7547b667b Mon Sep 17 00:00:00 2001 From: Michael Kowalchuk Date: Thu, 18 Nov 2021 23:11:35 -0800 Subject: [PATCH] Add tests for discovery data templates --- .../zwave_js/test_discovery_data_template.py | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 tests/components/zwave_js/test_discovery_data_template.py diff --git a/tests/components/zwave_js/test_discovery_data_template.py b/tests/components/zwave_js/test_discovery_data_template.py new file mode 100644 index 00000000000..ca3e5eb33da --- /dev/null +++ b/tests/components/zwave_js/test_discovery_data_template.py @@ -0,0 +1,44 @@ +"""Test discovery data templates.""" +from zwave_js_server.const import CURRENT_VALUE_PROPERTY, CommandClass +from zwave_js_server.model.value import Value as ZwaveValue + +from homeassistant.components.zwave_js.discovery_data_template import ( + ConfigurableFanSpeedDataTemplate, + FixedFanSpeedDataTemplate, + ZwaveValueID, +) + + +async def test_fixed_fan_speed_data_template(in_wall_smart_fan_control): + """Test FixedFanSpeedDataTemplate.""" + data_template = FixedFanSpeedDataTemplate([33, 66, 99]) + + values_dict = in_wall_smart_fan_control.get_command_class_values( + CommandClass.SWITCH_MULTILEVEL + ) + primary_value = next( + v + for v in values_dict.values() + if isinstance(v, ZwaveValue) and v.property_ == CURRENT_VALUE_PROPERTY + ) + + resolved_data = data_template.resolve_data(primary_value) + assert data_template.get_speed_config(resolved_data) == [33, 66, 99] + + +async def test_configurable_fan_speed_data_template(hs_fc200): + """Test ConfigurableFanSpeedDataTemplate.""" + data_template = ConfigurableFanSpeedDataTemplate( + configuration_option=ZwaveValueID(5, CommandClass.CONFIGURATION, endpoint=0), + configuration_value_to_speeds={0: [33, 66, 99], 1: [24, 49, 74, 99]}, + ) + + values_dict = hs_fc200.get_command_class_values(CommandClass.SWITCH_MULTILEVEL) + primary_value = next( + v + for v in values_dict.values() + if isinstance(v, ZwaveValue) and v.property_ == CURRENT_VALUE_PROPERTY + ) + + resolved_data = data_template.resolve_data(primary_value) + assert data_template.get_speed_config(resolved_data) == [33, 66, 99]