diff --git a/.coveragerc b/.coveragerc index 63eb4ea9be1..a885c5a28a6 100644 --- a/.coveragerc +++ b/.coveragerc @@ -58,9 +58,6 @@ omit = homeassistant/components/nest.py homeassistant/components/*/nest.py - homeassistant/components/rfxtrx.py - homeassistant/components/*/rfxtrx.py - homeassistant/components/rpi_gpio.py homeassistant/components/*/rpi_gpio.py diff --git a/homeassistant/components/rfxtrx.py b/homeassistant/components/rfxtrx.py index cfc6f1bab5a..f8adaa43223 100644 --- a/homeassistant/components/rfxtrx.py +++ b/homeassistant/components/rfxtrx.py @@ -7,9 +7,9 @@ https://home-assistant.io/components/rfxtrx/ import logging from homeassistant.util import slugify +from homeassistant.const import EVENT_HOMEASSISTANT_STOP -REQUIREMENTS = ['https://github.com/Danielhiversen/pyRFXtrx/' + - 'archive/0.5.zip#pyRFXtrx==0.5'] +REQUIREMENTS = ['pyRFXtrx==0.6.5'] DOMAIN = "rfxtrx" @@ -72,6 +72,10 @@ def setup(hass, config): else: RFXOBJECT = rfxtrxmod.Core(device, handle_receive, debug=debug) + def _shutdown_rfxtrx(event): + RFXOBJECT.close_connection() + hass.bus.listen_once(EVENT_HOMEASSISTANT_STOP, _shutdown_rfxtrx) + return True diff --git a/requirements_all.txt b/requirements_all.txt index a3f6a33bc27..0bf68dd8a8d 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -66,9 +66,6 @@ hikvision==0.4 # homeassistant.components.sensor.dht # http://github.com/mala-zaba/Adafruit_Python_DHT/archive/4101340de8d2457dd194bca1e8d11cbfc237e919.zip#Adafruit_DHT==1.1.0 -# homeassistant.components.rfxtrx -https://github.com/Danielhiversen/pyRFXtrx/archive/0.5.zip#pyRFXtrx==0.5 - # homeassistant.components.sensor.netatmo https://github.com/HydrelioxGitHub/netatmo-api-python/archive/43ff238a0122b0939a0dc4e8836b6782913fb6e2.zip#lnetatmo==0.4.0 @@ -157,6 +154,9 @@ pushetta==1.0.15 # homeassistant.components.sensor.cpuspeed py-cpuinfo==0.2.3 +# homeassistant.components.rfxtrx +pyRFXtrx==0.6.5 + # homeassistant.components.media_player.cast pychromecast==0.7.2 diff --git a/tests/components/light/test_rfxtrx.py b/tests/components/light/test_rfxtrx.py index 4cf9a048863..1d55e6e732a 100644 --- a/tests/components/light/test_rfxtrx.py +++ b/tests/components/light/test_rfxtrx.py @@ -5,12 +5,9 @@ from homeassistant.components import rfxtrx as rfxtrx_core from homeassistant.components.light import rfxtrx from unittest.mock import patch -import pytest - from tests.common import get_test_home_assistant -@pytest.mark.skipif(True, reason='Does not clean up properly, takes 100% CPU') class TestLightRfxtrx(unittest.TestCase): """Test the Rfxtrx light platform.""" @@ -22,6 +19,8 @@ class TestLightRfxtrx(unittest.TestCase): """Stop everything that was started.""" rfxtrx_core.RECEIVED_EVT_SUBSCRIBERS = [] rfxtrx_core.RFX_DEVICES = {} + if rfxtrx_core.RFXOBJECT: + rfxtrx_core.RFXOBJECT.close_connection() self.hass.stop() def test_default_config(self): diff --git a/tests/components/switch/test_rfxtrx.py b/tests/components/switch/test_rfxtrx.py index f9fe805fa46..cf60ae108bb 100644 --- a/tests/components/switch/test_rfxtrx.py +++ b/tests/components/switch/test_rfxtrx.py @@ -5,12 +5,9 @@ from homeassistant.components import rfxtrx as rfxtrx_core from homeassistant.components.switch import rfxtrx from unittest.mock import patch -import pytest - from tests.common import get_test_home_assistant -@pytest.mark.skipif(True, reason='Does not clean up properly, takes 100% CPU') class TestSwitchRfxtrx(unittest.TestCase): """Test the Rfxtrx switch platform.""" @@ -22,6 +19,8 @@ class TestSwitchRfxtrx(unittest.TestCase): """Stop everything that was started.""" rfxtrx_core.RECEIVED_EVT_SUBSCRIBERS = [] rfxtrx_core.RFX_DEVICES = {} + if rfxtrx_core.RFXOBJECT: + rfxtrx_core.RFXOBJECT.close_connection() self.hass.stop() def test_default_config(self): diff --git a/tests/components/test_rfxtrx.py b/tests/components/test_rfxtrx.py index 7c2ef788a44..27ac0bfac5d 100644 --- a/tests/components/test_rfxtrx.py +++ b/tests/components/test_rfxtrx.py @@ -6,12 +6,9 @@ import time from homeassistant.components import rfxtrx as rfxtrx from homeassistant.components.sensor import rfxtrx as rfxtrx_sensor -import pytest - from tests.common import get_test_home_assistant -@pytest.mark.skipif(True, reason='Does not clean up properly, takes 100% CPU') class TestRFXTRX(unittest.TestCase): """Test the Rfxtrx component.""" @@ -23,7 +20,8 @@ class TestRFXTRX(unittest.TestCase): """Stop everything that was started.""" rfxtrx.RECEIVED_EVT_SUBSCRIBERS = [] rfxtrx.RFX_DEVICES = {} - rfxtrx.RFXOBJECT = None + if rfxtrx.RFXOBJECT: + rfxtrx.RFXOBJECT.close_connection() self.hass.stop() def test_default_config(self):