Fix issue for rfxtrx ()

* Fix issue  for rfxtrx

* update tests for rfxtrx sensor

* Replace state_unkown with None in rfxtrx sensor

* Update test_rfxtrx.py
pull/2516/head
Daniel Høyer Iversen 2016-07-13 16:46:11 +02:00 committed by Paulus Schoutsen
parent 497bc6ac0d
commit 16feb1c55e
2 changed files with 11 additions and 63 deletions
homeassistant/components/sensor
tests/components/sensor

View File

@ -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):

View File

@ -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)