From 16feb1c55e36a9a2b11167ee6bc844c630c93ebf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20H=C3=B8yer=20Iversen?= Date: Wed, 13 Jul 2016 16:46:11 +0200 Subject: [PATCH] Fix issue #2290 for rfxtrx (#2498) * Fix issue #2290 for rfxtrx * update tests for rfxtrx sensor * Replace state_unkown with None in rfxtrx sensor * Update test_rfxtrx.py --- homeassistant/components/sensor/rfxtrx.py | 7 ++- tests/components/sensor/test_rfxtrx.py | 67 +++-------------------- 2 files changed, 11 insertions(+), 63 deletions(-) diff --git a/homeassistant/components/sensor/rfxtrx.py b/homeassistant/components/sensor/rfxtrx.py index 6cd7b977231..cee54644629 100644 --- a/homeassistant/components/sensor/rfxtrx.py +++ b/homeassistant/components/sensor/rfxtrx.py @@ -47,7 +47,7 @@ def setup_platform(hass, config, add_devices_callback, discovery_info=None): data_types = [data_type] break for _data_type in data_types: - new_sensor = RfxtrxSensor(event, entity_info[ATTR_NAME], + new_sensor = RfxtrxSensor(None, entity_info[ATTR_NAME], _data_type) sensors.append(new_sensor) sub_sensors[_data_type] = new_sensor @@ -110,7 +110,7 @@ class RfxtrxSensor(Entity): @property def state(self): """Return the state of the sensor.""" - if self.data_type: + if self.event: return self.event.values[self.data_type] return None @@ -122,7 +122,8 @@ class RfxtrxSensor(Entity): @property def device_state_attributes(self): """Return the state attributes.""" - return self.event.values + if self.event: + return self.event.values @property def unit_of_measurement(self): diff --git a/tests/components/sensor/test_rfxtrx.py b/tests/components/sensor/test_rfxtrx.py index ab5d9852d9d..6714dc70428 100644 --- a/tests/components/sensor/test_rfxtrx.py +++ b/tests/components/sensor/test_rfxtrx.py @@ -44,12 +44,7 @@ class TestSensorRfxtrx(unittest.TestCase): entity = rfxtrx_core.RFX_DEVICES['sensor_0502']['Temperature'] self.assertEqual('Test', entity.name) self.assertEqual(TEMP_CELSIUS, entity.unit_of_measurement) - self.assertEqual(14.9, entity.state) - self.assertEqual({'Humidity status': 'normal', 'Temperature': 14.9, - 'Rssi numeric': 6, 'Humidity': 34, - 'Battery numeric': 9, - 'Humidity status numeric': 2}, - entity.device_state_attributes) + self.assertEqual(None, entity.state) def test_one_sensor(self): """Test with 1 sensor.""" @@ -64,12 +59,7 @@ class TestSensorRfxtrx(unittest.TestCase): entity = rfxtrx_core.RFX_DEVICES['sensor_0502']['Temperature'] self.assertEqual('Test', entity.name) self.assertEqual(TEMP_CELSIUS, entity.unit_of_measurement) - self.assertEqual(14.9, entity.state) - self.assertEqual({'Humidity status': 'normal', 'Temperature': 14.9, - 'Rssi numeric': 6, 'Humidity': 34, - 'Battery numeric': 9, - 'Humidity status numeric': 2}, - entity.device_state_attributes) + self.assertEqual(None, entity.state) def test_one_sensor_no_datatype(self): """Test with 1 sensor.""" @@ -83,12 +73,7 @@ class TestSensorRfxtrx(unittest.TestCase): entity = rfxtrx_core.RFX_DEVICES['sensor_0502']['Temperature'] self.assertEqual('Test', entity.name) self.assertEqual(TEMP_CELSIUS, entity.unit_of_measurement) - self.assertEqual(14.9, entity.state) - self.assertEqual({'Humidity status': 'normal', 'Temperature': 14.9, - 'Rssi numeric': 6, 'Humidity': 34, - 'Battery numeric': 9, - 'Humidity status numeric': 2}, - entity.device_state_attributes) + self.assertEqual(None, entity.state) def test_several_sensors(self): """Test with 3 sensors.""" @@ -112,35 +97,16 @@ class TestSensorRfxtrx(unittest.TestCase): _entity_temp = rfxtrx_core.RFX_DEVICES[id]['Temperature'] _entity_hum = rfxtrx_core.RFX_DEVICES[id]['Humidity'] self.assertEqual('%', _entity_hum.unit_of_measurement) - self.assertEqual(14, _entity_hum.state) - self.assertEqual({'Battery numeric': 9, 'Temperature': 25.5, - 'Humidity': 14, 'Humidity status': 'normal', - 'Humidity status numeric': 2, - 'Rssi numeric': 6}, - _entity_hum.device_state_attributes) self.assertEqual('Bath', _entity_hum.__str__()) - + self.assertEqual(None, _entity_hum.state) self.assertEqual(TEMP_CELSIUS, _entity_temp.unit_of_measurement) - self.assertEqual(25.5, _entity_temp.state) - self.assertEqual({'Battery numeric': 9, 'Temperature': 25.5, - 'Humidity': 14, 'Humidity status': 'normal', - 'Humidity status numeric': 2, - 'Rssi numeric': 6}, - _entity_temp.device_state_attributes) self.assertEqual('Bath', _entity_temp.__str__()) elif id == 'sensor_0502': device_num = device_num + 1 entity = rfxtrx_core.RFX_DEVICES[id]['Temperature'] - + self.assertEqual(None, entity.state) self.assertEqual(TEMP_CELSIUS, entity.unit_of_measurement) - self.assertEqual(14.9, entity.state) - self.assertEqual({'Humidity status': 'normal', - 'Temperature': 14.9, - 'Rssi numeric': 6, 'Humidity': 34, - 'Battery numeric': 9, - 'Humidity status numeric': 2}, - entity.device_state_attributes) self.assertEqual('Test', entity.__str__()) self.assertEqual(2, device_num) @@ -252,35 +218,16 @@ class TestSensorRfxtrx(unittest.TestCase): _entity_temp = rfxtrx_core.RFX_DEVICES[id]['Temperature'] _entity_hum = rfxtrx_core.RFX_DEVICES[id]['Humidity'] self.assertEqual('%', _entity_hum.unit_of_measurement) - self.assertEqual(14, _entity_hum.state) - self.assertEqual({'Battery numeric': 9, 'Temperature': 25.5, - 'Humidity': 14, 'Humidity status': 'normal', - 'Humidity status numeric': 2, - 'Rssi numeric': 6}, - _entity_hum.device_state_attributes) self.assertEqual('Bath', _entity_hum.__str__()) - + self.assertEqual(None, _entity_temp.state) self.assertEqual(TEMP_CELSIUS, _entity_temp.unit_of_measurement) - self.assertEqual(25.5, _entity_temp.state) - self.assertEqual({'Battery numeric': 9, 'Temperature': 25.5, - 'Humidity': 14, 'Humidity status': 'normal', - 'Humidity status numeric': 2, - 'Rssi numeric': 6}, - _entity_temp.device_state_attributes) self.assertEqual('Bath', _entity_temp.__str__()) elif id == 'sensor_0502': device_num = device_num + 1 entity = rfxtrx_core.RFX_DEVICES[id]['Temperature'] - + self.assertEqual(None, entity.state) self.assertEqual(TEMP_CELSIUS, entity.unit_of_measurement) - self.assertEqual(14.9, entity.state) - self.assertEqual({'Humidity status': 'normal', - 'Temperature': 14.9, - 'Rssi numeric': 6, 'Humidity': 34, - 'Battery numeric': 9, - 'Humidity status numeric': 2}, - entity.device_state_attributes) self.assertEqual('Test', entity.__str__()) self.assertEqual(2, device_num)