"""Test Z-Wave workarounds.""" from homeassistant.components.zwave import const, workaround from tests.mock.zwave import MockNode, MockValue def test_get_device_no_component_mapping(): """Test that None is returned.""" node = MockNode(manufacturer_id=' ') value = MockValue(data=0, node=node) assert workaround.get_device_component_mapping(value) is None def test_get_device_component_mapping(): """Test that component is returned.""" node = MockNode(manufacturer_id='010f', product_type='0b00') value = MockValue(data=0, node=node, command_class=const.COMMAND_CLASS_SENSOR_ALARM) assert workaround.get_device_component_mapping(value) == 'binary_sensor' def test_get_device_component_mapping_mti(): """Test that component is returned.""" # GE Fan controller node = MockNode(manufacturer_id='0063', product_type='4944', product_id='3034') value = MockValue(data=0, node=node, command_class=const.COMMAND_CLASS_SWITCH_MULTILEVEL) assert workaround.get_device_component_mapping(value) == 'fan' # GE Dimmer node = MockNode(manufacturer_id='0063', product_type='4944', product_id='3031') value = MockValue(data=0, node=node, command_class=const.COMMAND_CLASS_SWITCH_MULTILEVEL) assert workaround.get_device_component_mapping(value) is None def test_get_device_no_mapping(): """Test that no device mapping is returned.""" node = MockNode(manufacturer_id=' ') value = MockValue(data=0, node=node) assert workaround.get_device_mapping(value) is None def test_get_device_mapping_mt(): """Test that device mapping mt is returned.""" node = MockNode(manufacturer_id='0047', product_type='5a52') value = MockValue(data=0, node=node) assert workaround.get_device_mapping(value) == 'workaround_no_position' def test_get_device_mapping_mtii(): """Test that device mapping mtii is returned.""" node = MockNode(manufacturer_id='013c', product_type='0002', product_id='0002') value = MockValue(data=0, node=node, index=0) assert workaround.get_device_mapping(value) == 'trigger_no_off_event' def test_get_device_mapping_mti_instance(): """Test that device mapping mti_instance is returned.""" node = MockNode(manufacturer_id='013c', product_type='0001', product_id='0005') value = MockValue(data=0, node=node, instance=1) assert workaround.get_device_mapping(value) == 'refresh_node_on_update' value = MockValue(data=0, node=node, instance=2) assert workaround.get_device_mapping(value) is None