Fixup rfxtrx tests to at least run (#37186)

This commit is contained in:
Joakim Plate 2020-06-28 06:54:27 +02:00 committed by GitHub
parent a63a11a11a
commit 464f17f182
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 91 additions and 372 deletions

View File

@ -17,15 +17,15 @@ class TestCoverRfxtrx(unittest.TestCase):
def setUp(self): def setUp(self):
"""Set up things to be run when tests are started.""" """Set up things to be run when tests are started."""
self.hass = get_test_home_assistant() self.hass = get_test_home_assistant()
mock_component("rfxtrx") mock_component(self.hass, "rfxtrx")
self.addCleanup(self.tear_down_cleanup) self.addCleanup(self.tear_down_cleanup)
def tear_down_cleanup(self): def tear_down_cleanup(self):
"""Stop everything that was started.""" """Stop everything that was started."""
rfxtrx_core.RECEIVED_EVT_SUBSCRIBERS = [] rfxtrx_core.RECEIVED_EVT_SUBSCRIBERS.clear()
rfxtrx_core.RFX_DEVICES = {} rfxtrx_core.RFX_DEVICES.clear()
if rfxtrx_core.RFXOBJECT: if rfxtrx_core.DATA_RFXOBJECT in self.hass.data:
rfxtrx_core.RFXOBJECT.close_connection() self.hass.data[rfxtrx_core.DATA_RFXOBJECT].close_connection()
self.hass.stop() self.hass.stop()
def test_valid_config(self): def test_valid_config(self):
@ -40,90 +40,13 @@ class TestCoverRfxtrx(unittest.TestCase):
"devices": { "devices": {
"0b1100cd0213c7f210010f51": { "0b1100cd0213c7f210010f51": {
"name": "Test", "name": "Test",
rfxtrx_core.ATTR_FIREEVENT: True, rfxtrx_core.ATTR_FIRE_EVENT: True,
} }
}, },
} }
}, },
) )
def test_invalid_config_capital_letters(self):
"""Test configuration."""
assert not setup_component(
self.hass,
"cover",
{
"cover": {
"platform": "rfxtrx",
"automatic_add": True,
"devices": {
"2FF7f216": {
"name": "Test",
"packetid": "0b1100cd0213c7f210010f51",
"signal_repetitions": 3,
}
},
}
},
)
def test_invalid_config_extra_key(self):
"""Test configuration."""
assert not setup_component(
self.hass,
"cover",
{
"cover": {
"platform": "rfxtrx",
"automatic_add": True,
"invalid_key": "afda",
"devices": {
"213c7f216": {
"name": "Test",
"packetid": "0b1100cd0213c7f210010f51",
rfxtrx_core.ATTR_FIREEVENT: True,
}
},
}
},
)
def test_invalid_config_capital_packetid(self):
"""Test configuration."""
assert not setup_component(
self.hass,
"cover",
{
"cover": {
"platform": "rfxtrx",
"automatic_add": True,
"devices": {
"213c7f216": {
"name": "Test",
"packetid": "AA1100cd0213c7f210010f51",
rfxtrx_core.ATTR_FIREEVENT: True,
}
},
}
},
)
def test_invalid_config_missing_packetid(self):
"""Test configuration."""
assert not setup_component(
self.hass,
"cover",
{
"cover": {
"platform": "rfxtrx",
"automatic_add": True,
"devices": {
"213c7f216": {"name": "Test", rfxtrx_core.ATTR_FIREEVENT: True}
},
}
},
)
def test_default_config(self): def test_default_config(self):
"""Test with 0 cover.""" """Test with 0 cover."""
assert setup_component( assert setup_component(
@ -143,8 +66,8 @@ class TestCoverRfxtrx(unittest.TestCase):
} }
}, },
) )
self.hass.block_till_done()
rfxtrx_core.RFXOBJECT = rfxtrxmod.Core( self.hass.data[rfxtrx_core.DATA_RFXOBJECT] = rfxtrxmod.Core(
"", transport_protocol=rfxtrxmod.DummyTransport "", transport_protocol=rfxtrxmod.DummyTransport
) )

View File

@ -1,5 +1,6 @@
"""The tests for the Rfxtrx component.""" """The tests for the Rfxtrx component."""
# pylint: disable=protected-access # pylint: disable=protected-access
import time
import unittest import unittest
import pytest import pytest
@ -22,10 +23,10 @@ class TestRFXTRX(unittest.TestCase):
def tear_down_cleanup(self): def tear_down_cleanup(self):
"""Stop everything that was started.""" """Stop everything that was started."""
rfxtrx.RECEIVED_EVT_SUBSCRIBERS = [] rfxtrx.RECEIVED_EVT_SUBSCRIBERS.clear()
rfxtrx.RFX_DEVICES = {} rfxtrx.RFX_DEVICES.clear()
if rfxtrx.RFXOBJECT: if rfxtrx.DATA_RFXOBJECT in self.hass.data:
rfxtrx.RFXOBJECT.close_connection() self.hass.data[rfxtrx.DATA_RFXOBJECT].close_connection()
self.hass.stop() self.hass.stop()
def test_default_config(self): def test_default_config(self):
@ -48,7 +49,9 @@ class TestRFXTRX(unittest.TestCase):
{"sensor": {"platform": "rfxtrx", "automatic_add": True, "devices": {}}}, {"sensor": {"platform": "rfxtrx", "automatic_add": True, "devices": {}}},
) )
assert len(rfxtrx.RFXOBJECT.sensors()) == 2 time.sleep(1) # Dummy startup is slow
assert len(self.hass.data[rfxtrx.DATA_RFXOBJECT].sensors()) == 2
def test_valid_config(self): def test_valid_config(self):
"""Test configuration.""" """Test configuration."""
@ -118,7 +121,7 @@ class TestRFXTRX(unittest.TestCase):
"devices": { "devices": {
"0b1100cd0213c7f210010f51": { "0b1100cd0213c7f210010f51": {
"name": "Test", "name": "Test",
rfxtrx.ATTR_FIREEVENT: True, rfxtrx.ATTR_FIRE_EVENT: True,
} }
}, },
} }
@ -134,8 +137,8 @@ class TestRFXTRX(unittest.TestCase):
self.hass.bus.listen(rfxtrx.EVENT_BUTTON_PRESSED, record_event) self.hass.bus.listen(rfxtrx.EVENT_BUTTON_PRESSED, record_event)
self.hass.block_till_done() self.hass.block_till_done()
entity = rfxtrx.RFX_DEVICES["213c7f2_16"]
entity = rfxtrx.RFX_DEVICES["213c7f216"] entity.update_state(False, 0)
assert "Test" == entity.name assert "Test" == entity.name
assert "off" == entity.state assert "off" == entity.state
assert entity.should_fire_event assert entity.should_fire_event
@ -176,7 +179,7 @@ class TestRFXTRX(unittest.TestCase):
"devices": { "devices": {
"0a520802060100ff0e0269": { "0a520802060100ff0e0269": {
"name": "Test", "name": "Test",
rfxtrx.ATTR_FIREEVENT: True, rfxtrx.ATTR_FIRE_EVENT: True,
} }
}, },
} }
@ -198,4 +201,4 @@ class TestRFXTRX(unittest.TestCase):
self.hass.block_till_done() self.hass.block_till_done()
assert 1 == len(calls) assert 1 == len(calls)
assert calls[0].data == {"entity_id": "sensor.test"} assert calls[0].data == {"entity_id": "sensor.test_temperature"}

View File

@ -1,7 +1,6 @@
"""The tests for the Rfxtrx light platform.""" """The tests for the Rfxtrx light platform."""
import unittest import unittest
import RFXtrx as rfxtrxmod
import pytest import pytest
from homeassistant.components import rfxtrx as rfxtrx_core from homeassistant.components import rfxtrx as rfxtrx_core
@ -22,10 +21,10 @@ class TestLightRfxtrx(unittest.TestCase):
def tear_down_cleanup(self): def tear_down_cleanup(self):
"""Stop everything that was started.""" """Stop everything that was started."""
rfxtrx_core.RECEIVED_EVT_SUBSCRIBERS = [] rfxtrx_core.RECEIVED_EVT_SUBSCRIBERS.clear()
rfxtrx_core.RFX_DEVICES = {} rfxtrx_core.RFX_DEVICES.clear()
if rfxtrx_core.RFXOBJECT: if rfxtrx_core.DATA_RFXOBJECT in self.hass.data:
rfxtrx_core.RFXOBJECT.close_connection() self.hass.data[rfxtrx_core.DATA_RFXOBJECT].close_connection()
self.hass.stop() self.hass.stop()
def test_valid_config(self): def test_valid_config(self):
@ -40,7 +39,7 @@ class TestLightRfxtrx(unittest.TestCase):
"devices": { "devices": {
"0b1100cd0213c7f210010f51": { "0b1100cd0213c7f210010f51": {
"name": "Test", "name": "Test",
rfxtrx_core.ATTR_FIREEVENT: True, rfxtrx_core.ATTR_FIRE_EVENT: True,
} }
}, },
} }
@ -55,9 +54,8 @@ class TestLightRfxtrx(unittest.TestCase):
"platform": "rfxtrx", "platform": "rfxtrx",
"automatic_add": True, "automatic_add": True,
"devices": { "devices": {
"213c7f216": { "0b1100cd0213c7f210010f51": {
"name": "Test", "name": "Test",
"packetid": "0b1100cd0213c7f210010f51",
"signal_repetitions": 3, "signal_repetitions": 3,
} }
}, },
@ -65,27 +63,6 @@ class TestLightRfxtrx(unittest.TestCase):
}, },
) )
def test_invalid_config(self):
"""Test configuration."""
assert not setup_component(
self.hass,
"light",
{
"light": {
"platform": "rfxtrx",
"automatic_add": True,
"invalid_key": "afda",
"devices": {
"213c7f216": {
"name": "Test",
"packetid": "0b1100cd0213c7f210010f51",
rfxtrx_core.ATTR_FIREEVENT: True,
}
},
}
},
)
def test_default_config(self): def test_default_config(self):
"""Test with 0 switches.""" """Test with 0 switches."""
assert setup_component( assert setup_component(
@ -93,59 +70,6 @@ class TestLightRfxtrx(unittest.TestCase):
) )
assert 0 == len(rfxtrx_core.RFX_DEVICES) assert 0 == len(rfxtrx_core.RFX_DEVICES)
def test_old_config(self):
"""Test with 1 light."""
assert setup_component(
self.hass,
"light",
{
"light": {
"platform": "rfxtrx",
"devices": {
"123efab1": {
"name": "Test",
"packetid": "0b1100cd0213c7f210010f51",
}
},
}
},
)
rfxtrx_core.RFXOBJECT = rfxtrxmod.Core(
"", transport_protocol=rfxtrxmod.DummyTransport
)
assert 1 == len(rfxtrx_core.RFX_DEVICES)
entity = rfxtrx_core.RFX_DEVICES["213c7f216"]
assert "Test" == entity.name
assert "off" == entity.state
assert entity.assumed_state
assert entity.signal_repetitions == 1
assert not entity.should_fire_event
assert not entity.should_poll
assert not entity.is_on
entity.turn_on()
assert entity.is_on
assert entity.brightness == 255
entity.turn_off()
assert not entity.is_on
assert entity.brightness == 0
entity.turn_on(brightness=100)
assert entity.is_on
assert entity.brightness == 100
entity.turn_on(brightness=10)
assert entity.is_on
assert entity.brightness == 10
entity.turn_on(brightness=255)
assert entity.is_on
assert entity.brightness == 255
def test_one_light(self): def test_one_light(self):
"""Test with 1 light.""" """Test with 1 light."""
assert setup_component( assert setup_component(
@ -161,12 +85,13 @@ class TestLightRfxtrx(unittest.TestCase):
import RFXtrx as rfxtrxmod import RFXtrx as rfxtrxmod
rfxtrx_core.RFXOBJECT = rfxtrxmod.Core( self.hass.data[rfxtrx_core.DATA_RFXOBJECT] = rfxtrxmod.Core(
"", transport_protocol=rfxtrxmod.DummyTransport "", transport_protocol=rfxtrxmod.DummyTransport
) )
assert 1 == len(rfxtrx_core.RFX_DEVICES) assert 1 == len(rfxtrx_core.RFX_DEVICES)
entity = rfxtrx_core.RFX_DEVICES["213c7f216"] entity = rfxtrx_core.RFX_DEVICES["213c7f2_16"]
entity.hass = self.hass
assert "Test" == entity.name assert "Test" == entity.name
assert "off" == entity.state assert "off" == entity.state
assert entity.assumed_state assert entity.assumed_state
@ -197,30 +122,23 @@ class TestLightRfxtrx(unittest.TestCase):
assert entity.brightness == 255 assert entity.brightness == 255
entity.turn_off() entity.turn_off()
entity_id = rfxtrx_core.RFX_DEVICES["213c7f216"].entity_id assert "Test" == entity.name
entity_hass = self.hass.states.get(entity_id) assert "off" == entity.state
assert "Test" == entity_hass.name
assert "off" == entity_hass.state
entity.turn_on() entity.turn_on()
entity_hass = self.hass.states.get(entity_id) assert "on" == entity.state
assert "on" == entity_hass.state
entity.turn_off() entity.turn_off()
entity_hass = self.hass.states.get(entity_id) assert "off" == entity.state
assert "off" == entity_hass.state
entity.turn_on(brightness=100) entity.turn_on(brightness=100)
entity_hass = self.hass.states.get(entity_id) assert "on" == entity.state
assert "on" == entity_hass.state
entity.turn_on(brightness=10) entity.turn_on(brightness=10)
entity_hass = self.hass.states.get(entity_id) assert "on" == entity.state
assert "on" == entity_hass.state
entity.turn_on(brightness=255) entity.turn_on(brightness=255)
entity_hass = self.hass.states.get(entity_id) assert "on" == entity.state
assert "on" == entity_hass.state
def test_several_lights(self): def test_several_lights(self):
"""Test with 3 lights.""" """Test with 3 lights."""
@ -272,7 +190,7 @@ class TestLightRfxtrx(unittest.TestCase):
event.data = bytearray(b"\x0b\x11\x00\x9e\x00\xe6\x11b\x02\x02\x00p") event.data = bytearray(b"\x0b\x11\x00\x9e\x00\xe6\x11b\x02\x02\x00p")
rfxtrx_core.RECEIVED_EVT_SUBSCRIBERS[0](event) rfxtrx_core.RECEIVED_EVT_SUBSCRIBERS[0](event)
entity = rfxtrx_core.RFX_DEVICES["0e611622"] entity = rfxtrx_core.RFX_DEVICES["0e61162_2"]
assert 1 == len(rfxtrx_core.RFX_DEVICES) assert 1 == len(rfxtrx_core.RFX_DEVICES)
assert "<Entity 0b11009e00e6116202020070: on>" == entity.__str__() assert "<Entity 0b11009e00e6116202020070: on>" == entity.__str__()
@ -288,7 +206,7 @@ class TestLightRfxtrx(unittest.TestCase):
) )
rfxtrx_core.RECEIVED_EVT_SUBSCRIBERS[0](event) rfxtrx_core.RECEIVED_EVT_SUBSCRIBERS[0](event)
entity = rfxtrx_core.RFX_DEVICES["118cdea2"] entity = rfxtrx_core.RFX_DEVICES["118cdea_2"]
assert 2 == len(rfxtrx_core.RFX_DEVICES) assert 2 == len(rfxtrx_core.RFX_DEVICES)
assert "<Entity 0b1100120118cdea02020070: on>" == entity.__str__() assert "<Entity 0b1100120118cdea02020070: on>" == entity.__str__()

View File

@ -22,10 +22,10 @@ class TestSensorRfxtrx(unittest.TestCase):
def tear_down_cleanup(self): def tear_down_cleanup(self):
"""Stop everything that was started.""" """Stop everything that was started."""
rfxtrx_core.RECEIVED_EVT_SUBSCRIBERS = [] rfxtrx_core.RECEIVED_EVT_SUBSCRIBERS.clear()
rfxtrx_core.RFX_DEVICES = {} rfxtrx_core.RFX_DEVICES.clear()
if rfxtrx_core.RFXOBJECT: if rfxtrx_core.DATA_RFXOBJECT in self.hass.data:
rfxtrx_core.RFXOBJECT.close_connection() self.hass.data[rfxtrx_core.DATA_RFXOBJECT].close_connection()
self.hass.stop() self.hass.stop()
def test_default_config(self): def test_default_config(self):
@ -35,31 +35,6 @@ class TestSensorRfxtrx(unittest.TestCase):
) )
assert 0 == len(rfxtrx_core.RFX_DEVICES) assert 0 == len(rfxtrx_core.RFX_DEVICES)
def test_old_config_sensor(self):
"""Test with 1 sensor."""
assert setup_component(
self.hass,
"sensor",
{
"sensor": {
"platform": "rfxtrx",
"devices": {
"sensor_0502": {
"name": "Test",
"packetid": "0a52080705020095220269",
"data_type": "Temperature",
}
},
}
},
)
assert 1 == len(rfxtrx_core.RFX_DEVICES)
entity = rfxtrx_core.RFX_DEVICES["sensor_0502"]["Temperature"]
assert "Test" == entity.name
assert TEMP_CELSIUS == entity.unit_of_measurement
assert entity.state is None
def test_one_sensor(self): def test_one_sensor(self):
"""Test with 1 sensor.""" """Test with 1 sensor."""
assert setup_component( assert setup_component(
@ -79,8 +54,8 @@ class TestSensorRfxtrx(unittest.TestCase):
) )
assert 1 == len(rfxtrx_core.RFX_DEVICES) assert 1 == len(rfxtrx_core.RFX_DEVICES)
entity = rfxtrx_core.RFX_DEVICES["sensor_0502"]["Temperature"] entity = rfxtrx_core.RFX_DEVICES["sensor_05_02"]["Temperature"]
assert "Test" == entity.name assert "Test Temperature" == entity.name
assert TEMP_CELSIUS == entity.unit_of_measurement assert TEMP_CELSIUS == entity.unit_of_measurement
assert entity.state is None assert entity.state is None
@ -98,16 +73,11 @@ class TestSensorRfxtrx(unittest.TestCase):
) )
assert 1 == len(rfxtrx_core.RFX_DEVICES) assert 1 == len(rfxtrx_core.RFX_DEVICES)
entity = rfxtrx_core.RFX_DEVICES["sensor_0502"]["Temperature"] entity = rfxtrx_core.RFX_DEVICES["sensor_05_02"]["Temperature"]
assert "Test" == entity.name assert "Test Temperature" == entity.name
assert TEMP_CELSIUS == entity.unit_of_measurement assert TEMP_CELSIUS == entity.unit_of_measurement
assert entity.state is None assert entity.state is None
entity_id = rfxtrx_core.RFX_DEVICES["sensor_0502"]["Temperature"].entity_id
entity = self.hass.states.get(entity_id)
assert "Test" == entity.name
assert "unknown" == entity.state
def test_several_sensors(self): def test_several_sensors(self):
"""Test with 3 sensors.""" """Test with 3 sensors."""
assert setup_component( assert setup_component(
@ -133,7 +103,7 @@ class TestSensorRfxtrx(unittest.TestCase):
assert 2 == len(rfxtrx_core.RFX_DEVICES) assert 2 == len(rfxtrx_core.RFX_DEVICES)
device_num = 0 device_num = 0
for id in rfxtrx_core.RFX_DEVICES: for id in rfxtrx_core.RFX_DEVICES:
if id == "sensor_0601": if id == "sensor_06_01":
device_num = device_num + 1 device_num = device_num + 1
assert len(rfxtrx_core.RFX_DEVICES[id]) == 2 assert len(rfxtrx_core.RFX_DEVICES[id]) == 2
_entity_temp = rfxtrx_core.RFX_DEVICES[id]["Temperature"] _entity_temp = rfxtrx_core.RFX_DEVICES[id]["Temperature"]
@ -143,7 +113,7 @@ class TestSensorRfxtrx(unittest.TestCase):
assert _entity_hum.state is None assert _entity_hum.state is None
assert TEMP_CELSIUS == _entity_temp.unit_of_measurement assert TEMP_CELSIUS == _entity_temp.unit_of_measurement
assert "Bath" == _entity_temp.__str__() assert "Bath" == _entity_temp.__str__()
elif id == "sensor_0502": elif id == "sensor_05_02":
device_num = device_num + 1 device_num = device_num + 1
entity = rfxtrx_core.RFX_DEVICES[id]["Temperature"] entity = rfxtrx_core.RFX_DEVICES[id]["Temperature"]
assert entity.state is None assert entity.state is None
@ -159,12 +129,13 @@ class TestSensorRfxtrx(unittest.TestCase):
"sensor", "sensor",
{"sensor": {"platform": "rfxtrx", "automatic_add": True, "devices": {}}}, {"sensor": {"platform": "rfxtrx", "automatic_add": True, "devices": {}}},
) )
self.hass.block_till_done()
event = rfxtrx_core.get_rfx_object("0a520801070100b81b0279") event = rfxtrx_core.get_rfx_object("0a520801070100b81b0279")
event.data = bytearray(b"\nR\x08\x01\x07\x01\x00\xb8\x1b\x02y") event.data = bytearray(b"\nR\x08\x01\x07\x01\x00\xb8\x1b\x02y")
rfxtrx_core.RECEIVED_EVT_SUBSCRIBERS[0](event) rfxtrx_core.RECEIVED_EVT_SUBSCRIBERS[0](event)
entity = rfxtrx_core.RFX_DEVICES["sensor_0701"]["Temperature"] entity = rfxtrx_core.RFX_DEVICES["sensor_07_01"]["Temperature"]
assert 1 == len(rfxtrx_core.RFX_DEVICES) assert 1 == len(rfxtrx_core.RFX_DEVICES)
assert { assert {
"Humidity status": "normal", "Humidity status": "normal",
@ -182,7 +153,7 @@ class TestSensorRfxtrx(unittest.TestCase):
event = rfxtrx_core.get_rfx_object("0a52080405020095240279") event = rfxtrx_core.get_rfx_object("0a52080405020095240279")
event.data = bytearray(b"\nR\x08\x04\x05\x02\x00\x95$\x02y") event.data = bytearray(b"\nR\x08\x04\x05\x02\x00\x95$\x02y")
rfxtrx_core.RECEIVED_EVT_SUBSCRIBERS[0](event) rfxtrx_core.RECEIVED_EVT_SUBSCRIBERS[0](event)
entity = rfxtrx_core.RFX_DEVICES["sensor_0502"]["Temperature"] entity = rfxtrx_core.RFX_DEVICES["sensor_05_02"]["Temperature"]
assert 2 == len(rfxtrx_core.RFX_DEVICES) assert 2 == len(rfxtrx_core.RFX_DEVICES)
assert { assert {
"Humidity status": "normal", "Humidity status": "normal",
@ -197,7 +168,7 @@ class TestSensorRfxtrx(unittest.TestCase):
event = rfxtrx_core.get_rfx_object("0a52085e070100b31b0279") event = rfxtrx_core.get_rfx_object("0a52085e070100b31b0279")
event.data = bytearray(b"\nR\x08^\x07\x01\x00\xb3\x1b\x02y") event.data = bytearray(b"\nR\x08^\x07\x01\x00\xb3\x1b\x02y")
rfxtrx_core.RECEIVED_EVT_SUBSCRIBERS[0](event) rfxtrx_core.RECEIVED_EVT_SUBSCRIBERS[0](event)
entity = rfxtrx_core.RFX_DEVICES["sensor_0701"]["Temperature"] entity = rfxtrx_core.RFX_DEVICES["sensor_07_01"]["Temperature"]
assert 2 == len(rfxtrx_core.RFX_DEVICES) assert 2 == len(rfxtrx_core.RFX_DEVICES)
assert { assert {
"Humidity status": "normal", "Humidity status": "normal",
@ -267,7 +238,7 @@ class TestSensorRfxtrx(unittest.TestCase):
assert 2 == len(rfxtrx_core.RFX_DEVICES) assert 2 == len(rfxtrx_core.RFX_DEVICES)
device_num = 0 device_num = 0
for id in rfxtrx_core.RFX_DEVICES: for id in rfxtrx_core.RFX_DEVICES:
if id == "sensor_0601": if id == "sensor_06_01":
device_num = device_num + 1 device_num = device_num + 1
assert len(rfxtrx_core.RFX_DEVICES[id]) == 2 assert len(rfxtrx_core.RFX_DEVICES[id]) == 2
_entity_temp = rfxtrx_core.RFX_DEVICES[id]["Temperature"] _entity_temp = rfxtrx_core.RFX_DEVICES[id]["Temperature"]
@ -277,7 +248,7 @@ class TestSensorRfxtrx(unittest.TestCase):
assert _entity_temp.state is None assert _entity_temp.state is None
assert TEMP_CELSIUS == _entity_temp.unit_of_measurement assert TEMP_CELSIUS == _entity_temp.unit_of_measurement
assert "Bath" == _entity_temp.__str__() assert "Bath" == _entity_temp.__str__()
elif id == "sensor_0502": elif id == "sensor_05_02":
device_num = device_num + 1 device_num = device_num + 1
entity = rfxtrx_core.RFX_DEVICES[id]["Temperature"] entity = rfxtrx_core.RFX_DEVICES[id]["Temperature"]
assert entity.state is None assert entity.state is None
@ -299,7 +270,7 @@ class TestSensorRfxtrx(unittest.TestCase):
device_num = 0 device_num = 0
for id in rfxtrx_core.RFX_DEVICES: for id in rfxtrx_core.RFX_DEVICES:
if id == "sensor_0601": if id == "sensor_06_01":
device_num = device_num + 1 device_num = device_num + 1
assert len(rfxtrx_core.RFX_DEVICES[id]) == 2 assert len(rfxtrx_core.RFX_DEVICES[id]) == 2
_entity_temp = rfxtrx_core.RFX_DEVICES[id]["Temperature"] _entity_temp = rfxtrx_core.RFX_DEVICES[id]["Temperature"]
@ -327,7 +298,7 @@ class TestSensorRfxtrx(unittest.TestCase):
"Rssi numeric": 6, "Rssi numeric": 6,
} == _entity_temp.device_state_attributes } == _entity_temp.device_state_attributes
assert "Bath" == _entity_temp.__str__() assert "Bath" == _entity_temp.__str__()
elif id == "sensor_0502": elif id == "sensor_05_02":
device_num = device_num + 1 device_num = device_num + 1
entity = rfxtrx_core.RFX_DEVICES[id]["Temperature"] entity = rfxtrx_core.RFX_DEVICES[id]["Temperature"]
assert TEMP_CELSIUS == entity.unit_of_measurement assert TEMP_CELSIUS == entity.unit_of_measurement

View File

@ -7,7 +7,7 @@ import pytest
from homeassistant.components import rfxtrx as rfxtrx_core from homeassistant.components import rfxtrx as rfxtrx_core
from homeassistant.setup import setup_component from homeassistant.setup import setup_component
from tests.common import get_test_home_assistant, mock_component from tests.common import assert_setup_component, get_test_home_assistant, mock_component
@pytest.mark.skipif("os.environ.get('RFXTRX') != 'RUN'") @pytest.mark.skipif("os.environ.get('RFXTRX') != 'RUN'")
@ -22,10 +22,10 @@ class TestSwitchRfxtrx(unittest.TestCase):
def tear_down_cleanup(self): def tear_down_cleanup(self):
"""Stop everything that was started.""" """Stop everything that was started."""
rfxtrx_core.RECEIVED_EVT_SUBSCRIBERS = [] rfxtrx_core.RECEIVED_EVT_SUBSCRIBERS.clear()
rfxtrx_core.RFX_DEVICES = {} rfxtrx_core.RFX_DEVICES.clear()
if rfxtrx_core.RFXOBJECT: if rfxtrx_core.DATA_RFXOBJECT in self.hass.data:
rfxtrx_core.RFXOBJECT.close_connection() self.hass.data[rfxtrx_core.DATA_RFXOBJECT].close_connection()
self.hass.stop() self.hass.stop()
def test_valid_config(self): def test_valid_config(self):
@ -40,7 +40,7 @@ class TestSwitchRfxtrx(unittest.TestCase):
"devices": { "devices": {
"0b1100cd0213c7f210010f51": { "0b1100cd0213c7f210010f51": {
"name": "Test", "name": "Test",
rfxtrx_core.ATTR_FIREEVENT: True, rfxtrx_core.ATTR_FIRE_EVENT: True,
} }
}, },
} }
@ -59,27 +59,7 @@ class TestSwitchRfxtrx(unittest.TestCase):
"devices": { "devices": {
710000141010170: { 710000141010170: {
"name": "Test", "name": "Test",
rfxtrx_core.ATTR_FIREEVENT: True, rfxtrx_core.ATTR_FIRE_EVENT: True,
}
},
}
},
)
def test_invalid_config1(self):
"""Test invalid configuration."""
assert not setup_component(
self.hass,
"switch",
{
"switch": {
"platform": "rfxtrx",
"automatic_add": True,
"devices": {
"2FF7f216": {
"name": "Test",
"packetid": "0b1100cd0213c7f210010f51",
"signal_repetitions": 3,
} }
}, },
} }
@ -88,60 +68,24 @@ class TestSwitchRfxtrx(unittest.TestCase):
def test_invalid_config2(self): def test_invalid_config2(self):
"""Test invalid configuration.""" """Test invalid configuration."""
assert not setup_component( with assert_setup_component(0):
self.hass, setup_component(
"switch", self.hass,
{ "switch",
"switch": { {
"platform": "rfxtrx", "switch": {
"automatic_add": True, "platform": "rfxtrx",
"invalid_key": "afda", "automatic_add": True,
"devices": { "invalid_key": "afda",
"213c7f216": { "devices": {
"name": "Test", "0b1100cd0213c7f210010f51": {
"packetid": "0b1100cd0213c7f210010f51", "name": "Test",
rfxtrx_core.ATTR_FIREEVENT: True, rfxtrx_core.ATTR_FIRE_EVENT: True,
} }
}, },
} }
}, },
) )
def test_invalid_config3(self):
"""Test invalid configuration."""
assert not setup_component(
self.hass,
"switch",
{
"switch": {
"platform": "rfxtrx",
"automatic_add": True,
"devices": {
"213c7f216": {
"name": "Test",
"packetid": "AA1100cd0213c7f210010f51",
rfxtrx_core.ATTR_FIREEVENT: True,
}
},
}
},
)
def test_invalid_config4(self):
"""Test configuration."""
assert not setup_component(
self.hass,
"switch",
{
"switch": {
"platform": "rfxtrx",
"automatic_add": True,
"devices": {
"213c7f216": {"name": "Test", rfxtrx_core.ATTR_FIREEVENT: True}
},
}
},
)
def test_default_config(self): def test_default_config(self):
"""Test with 0 switches.""" """Test with 0 switches."""
@ -150,43 +94,6 @@ class TestSwitchRfxtrx(unittest.TestCase):
) )
assert 0 == len(rfxtrx_core.RFX_DEVICES) assert 0 == len(rfxtrx_core.RFX_DEVICES)
def test_old_config(self):
"""Test with 1 switch."""
assert setup_component(
self.hass,
"switch",
{
"switch": {
"platform": "rfxtrx",
"devices": {
"123efab1": {
"name": "Test",
"packetid": "0b1100cd0213c7f210010f51",
}
},
}
},
)
rfxtrx_core.RFXOBJECT = rfxtrxmod.Core(
"", transport_protocol=rfxtrxmod.DummyTransport
)
assert 1 == len(rfxtrx_core.RFX_DEVICES)
entity = rfxtrx_core.RFX_DEVICES["213c7f216"]
assert "Test" == entity.name
assert "off" == entity.state
assert entity.assumed_state
assert entity.signal_repetitions == 1
assert not entity.should_fire_event
assert not entity.should_poll
assert not entity.is_on
entity.turn_on()
assert entity.is_on
entity.turn_off()
assert not entity.is_on
def test_one_switch(self): def test_one_switch(self):
"""Test with 1 switch.""" """Test with 1 switch."""
assert setup_component( assert setup_component(
@ -200,12 +107,13 @@ class TestSwitchRfxtrx(unittest.TestCase):
}, },
) )
rfxtrx_core.RFXOBJECT = rfxtrxmod.Core( self.hass.data[rfxtrx_core.DATA_RFXOBJECT] = rfxtrxmod.Core(
"", transport_protocol=rfxtrxmod.DummyTransport "", transport_protocol=rfxtrxmod.DummyTransport
) )
assert 1 == len(rfxtrx_core.RFX_DEVICES) assert 1 == len(rfxtrx_core.RFX_DEVICES)
entity = rfxtrx_core.RFX_DEVICES["213c7f216"] entity = rfxtrx_core.RFX_DEVICES["213c7f2_16"]
entity.hass = self.hass
assert "Test" == entity.name assert "Test" == entity.name
assert "off" == entity.state assert "off" == entity.state
assert entity.assumed_state assert entity.assumed_state
@ -219,16 +127,12 @@ class TestSwitchRfxtrx(unittest.TestCase):
entity.turn_off() entity.turn_off()
assert not entity.is_on assert not entity.is_on
entity_id = rfxtrx_core.RFX_DEVICES["213c7f216"].entity_id assert "Test" == entity.name
entity_hass = self.hass.states.get(entity_id) assert "off" == entity.state
assert "Test" == entity_hass.name
assert "off" == entity_hass.state
entity.turn_on() entity.turn_on()
entity_hass = self.hass.states.get(entity_id) assert "on" == entity.state
assert "on" == entity_hass.state
entity.turn_off() entity.turn_off()
entity_hass = self.hass.states.get(entity_id) assert "off" == entity.state
assert "off" == entity_hass.state
def test_several_switches(self): def test_several_switches(self):
"""Test with 3 switches.""" """Test with 3 switches."""
@ -282,7 +186,7 @@ class TestSwitchRfxtrx(unittest.TestCase):
) )
rfxtrx_core.RECEIVED_EVT_SUBSCRIBERS[0](event) rfxtrx_core.RECEIVED_EVT_SUBSCRIBERS[0](event)
entity = rfxtrx_core.RFX_DEVICES["118cdea2"] entity = rfxtrx_core.RFX_DEVICES["118cdea_2"]
assert 1 == len(rfxtrx_core.RFX_DEVICES) assert 1 == len(rfxtrx_core.RFX_DEVICES)
assert "<Entity 0b1100100118cdea01010f70: on>" == entity.__str__() assert "<Entity 0b1100100118cdea01010f70: on>" == entity.__str__()
@ -295,7 +199,7 @@ class TestSwitchRfxtrx(unittest.TestCase):
) )
rfxtrx_core.RECEIVED_EVT_SUBSCRIBERS[0](event) rfxtrx_core.RECEIVED_EVT_SUBSCRIBERS[0](event)
entity = rfxtrx_core.RFX_DEVICES["118cdeb2"] entity = rfxtrx_core.RFX_DEVICES["118cdeb_2"]
assert 2 == len(rfxtrx_core.RFX_DEVICES) assert 2 == len(rfxtrx_core.RFX_DEVICES)
assert "<Entity 0b1100120118cdea02000070: on>" == entity.__str__() assert "<Entity 0b1100120118cdea02000070: on>" == entity.__str__()