def test_trigger_sensor_value_changed(hass, mock_openzwave): """Test value changed for trigger sensor.""" node = MockNode(manufacturer_id='013c', product_type='0002', product_id='0002') value = MockValue(data=False, node=node) value_off_delay = MockValue(data=15, node=node) values = MockEntityValues(primary=value, off_delay=value_off_delay) device = zwave.get_device(node=node, values=values, node_config={}) assert not device.is_on value.data = True yield from hass.async_add_job(value_changed, value) assert device.invalidate_after is None device.hass = hass value.data = True yield from hass.async_add_job(value_changed, value) assert device.is_on test_time = device.invalidate_after - datetime.timedelta(seconds=1) with patch('homeassistant.util.dt.utcnow', return_value=test_time): assert device.is_on test_time = device.invalidate_after with patch('homeassistant.util.dt.utcnow', return_value=test_time): assert not device.is_on
def test_refresh_entity(self): """Test zwave refresh_entity service.""" node = MockNode() value = MockValue(data=False, node=node, command_class=const.COMMAND_CLASS_SENSOR_BINARY) power_value = MockValue(data=50, node=node, command_class=const.COMMAND_CLASS_METER) values = MockEntityValues(primary=value, power=power_value) device = get_device(node=node, values=values, node_config={}) device.hass = self.hass device.entity_id = 'binary_sensor.mock_entity_id' self.hass.add_job(device.async_added_to_hass()) self.hass.block_till_done() self.hass.services.call('zwave', 'refresh_entity', { ATTR_ENTITY_ID: 'binary_sensor.mock_entity_id', }) self.hass.block_till_done() assert node.refresh_value.called assert len(node.refresh_value.mock_calls) == 2 self.assertEqual( sorted([ node.refresh_value.mock_calls[0][1][0], node.refresh_value.mock_calls[1][1][0] ]), sorted([value.value_id, power_value.value_id]))
def test_trigger_sensor_value_changed(hass, mock_openzwave): """Test value changed for trigger sensor.""" node = MockNode( manufacturer_id='013c', product_type='0002', product_id='0002') value = MockValue(data=False, node=node) values = MockEntityValues(primary=value) device = zwave.get_device(node=node, values=values, node_config={}) assert not device.is_on value.data = True yield from hass.loop.run_in_executor(None, value_changed, value) yield from hass.async_block_till_done() assert device.invalidate_after is None device.hass = hass value.data = True yield from hass.loop.run_in_executor(None, value_changed, value) yield from hass.async_block_till_done() assert device.is_on test_time = device.invalidate_after - datetime.timedelta(seconds=1) with patch('homeassistant.util.dt.utcnow', return_value=test_time): assert device.is_on test_time = device.invalidate_after with patch('homeassistant.util.dt.utcnow', return_value=test_time): assert not device.is_on
def test_get_device_detects_none(mock_openzwave): """Test device is not returned.""" node = MockNode() value = MockValue(data=False, node=node) values = MockEntityValues(primary=value) device = zwave.get_device(node=node, values=values, node_config={}) assert device is None
def test_get_device_detects_sensor(mock_openzwave): """Test that device returns a binary sensor.""" node = MockNode() value = MockValue(data=False, node=node, command_class=const.COMMAND_CLASS_SENSOR_BINARY) values = MockEntityValues(primary=value) device = zwave.get_device(node=node, values=values, node_config={}) assert isinstance(device, zwave.ZWaveBinarySensor)
def test_get_device_detects_workaround_sensor(mock_openzwave): """Test that workaround returns a binary sensor.""" node = MockNode(manufacturer_id='010f', product_type='0b00') value = MockValue(data=False, node=node, command_class=const.COMMAND_CLASS_SENSOR_ALARM) values = MockEntityValues(primary=value) device = zwave.get_device(node=node, values=values, node_config={}) assert isinstance(device, zwave.ZWaveBinarySensor)
def test_get_device_detects_trigger_sensor(mock_openzwave): """Test device is a trigger sensor.""" node = MockNode( manufacturer_id='013c', product_type='0002', product_id='0002') value = MockValue(data=False, node=node) values = MockEntityValues(primary=value) device = zwave.get_device(node=node, values=values, node_config={}) assert isinstance(device, zwave.ZWaveTriggerSensor) assert device.device_class == "motion"
def test_get_device_detects_trigger_sensor(mock_openzwave): """Test device is a trigger sensor.""" node = MockNode(manufacturer_id='013c', product_type='0002', product_id='0002') value = MockValue(data=False, node=node) values = MockEntityValues(primary=value) device = zwave.get_device(node=node, values=values, node_config={}) assert isinstance(device, zwave.ZWaveTriggerSensor) assert device.device_class == "motion"
def test_binary_sensor_value_changed(mock_openzwave): """Test value changed for binary sensor.""" node = MockNode() value = MockValue(data=False, node=node, command_class=const.COMMAND_CLASS_SENSOR_BINARY) values = MockEntityValues(primary=value) device = zwave.get_device(node=node, values=values, node_config={}) assert not device.is_on value.data = True value_changed(value) assert device.is_on
def test_refresh_entity(self): """Test zwave refresh_entity service.""" node = MockNode() value = MockValue(data=False, node=node, command_class=const.COMMAND_CLASS_SENSOR_BINARY) power_value = MockValue(data=50, node=node, command_class=const.COMMAND_CLASS_METER) values = MockEntityValues(primary=value, power=power_value) device = get_device(node=node, values=values, node_config={}) device.hass = self.hass device.entity_id = 'binary_sensor.mock_entity_id' self.hass.add_job(device.async_added_to_hass()) self.hass.block_till_done() self.hass.services.call('zwave', 'refresh_entity', { ATTR_ENTITY_ID: 'binary_sensor.mock_entity_id', }) self.hass.block_till_done() assert node.refresh_value.called assert len(node.refresh_value.mock_calls) == 2 self.assertEqual(sorted([node.refresh_value.mock_calls[0][1][0], node.refresh_value.mock_calls[1][1][0]]), sorted([value.value_id, power_value.value_id]))