From e75a66ed201d022a202b17009933ac9dd969f6e7 Mon Sep 17 00:00:00 2001 From: John Arild Berentsen Date: Thu, 16 Mar 2017 13:25:37 +0100 Subject: [PATCH] Add Zwave sensors test (#6640) * Test for zwave sensor * Add test for ZWave sensors * Hound... * Hound... * Review changes --- tests/components/sensor/test_zwave.py | 68 +++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 tests/components/sensor/test_zwave.py diff --git a/tests/components/sensor/test_zwave.py b/tests/components/sensor/test_zwave.py new file mode 100644 index 00000000000..f117814b8f5 --- /dev/null +++ b/tests/components/sensor/test_zwave.py @@ -0,0 +1,68 @@ +"""Test Z-Wave sensor.""" +from homeassistant.components.sensor import zwave +from homeassistant.components.zwave import const +from tests.mock.zwave import ( + MockNode, MockValue, MockEntityValues, value_changed) + + +def test_get_device_detects_sensor(mock_openzwave): + """Test get_device returns a Z-Wave Sensor.""" + node = MockNode(command_classes=[const.COMMAND_CLASS_BATTERY]) + value = MockValue(data=0, command_class=const.COMMAND_CLASS_BATTERY, + node=node) + values = MockEntityValues(primary=value) + + device = zwave.get_device(node=node, values=values, node_config={}) + assert isinstance(device, zwave.ZWaveSensor) + + +def test_get_device_detects_alarmsensor(mock_openzwave): + """Test get_device returns a Z-Wave alarmsensor.""" + node = MockNode(command_classes=[const.COMMAND_CLASS_ALARM, + const.COMMAND_CLASS_SENSOR_ALARM]) + value = MockValue(data=0, node=node) + values = MockEntityValues(primary=value) + + device = zwave.get_device(node=node, values=values, node_config={}) + assert isinstance(device, zwave.ZWaveAlarmSensor) + + +def test_get_device_detects_multilevelsensor(mock_openzwave): + """Test get_device returns a Z-Wave multilevel sensor.""" + node = MockNode(command_classes=[const.COMMAND_CLASS_SENSOR_MULTILEVEL, + const.COMMAND_CLASS_METER]) + value = MockValue(data=0, node=node) + values = MockEntityValues(primary=value) + + device = zwave.get_device(node=node, values=values, node_config={}) + assert isinstance(device, zwave.ZWaveMultilevelSensor) + + +def test_multilevelsensor_value_changed_temp_units(mock_openzwave): + """Test value changed for Z-Wave multilevel sensor for temperature.""" + node = MockNode(command_classes=[const.COMMAND_CLASS_SENSOR_MULTILEVEL, + const.COMMAND_CLASS_METER]) + value = MockValue(data=190.95555, units='F', node=node) + values = MockEntityValues(primary=value) + + device = zwave.get_device(node=node, values=values, node_config={}) + assert device.state == 191.0 + assert value.units == 'F' + value.data = 197.95555 + value_changed(value) + assert device.state == 198.0 + + +def test_multilevelsensor_value_changed_other_units(mock_openzwave): + """Test value changed for Z-Wave multilevel sensor for other units.""" + node = MockNode(command_classes=[const.COMMAND_CLASS_SENSOR_MULTILEVEL, + const.COMMAND_CLASS_METER]) + value = MockValue(data=190.95555, units='kWh', node=node) + values = MockEntityValues(primary=value) + + device = zwave.get_device(node=node, values=values, node_config={}) + assert device.state == 190.96 + assert value.units == 'kWh' + value.data = 197.95555 + value_changed(value) + assert device.state == 197.96