From 13c6c64cded448341de85b9899888e13fded0d29 Mon Sep 17 00:00:00 2001 From: Diogo Gomes Date: Sun, 25 Feb 2018 01:20:49 +0000 Subject: [PATCH] added tests --- tests/components/sensor/test_filter.py | 86 ++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 tests/components/sensor/test_filter.py diff --git a/tests/components/sensor/test_filter.py b/tests/components/sensor/test_filter.py new file mode 100644 index 00000000000..8f7242c1761 --- /dev/null +++ b/tests/components/sensor/test_filter.py @@ -0,0 +1,86 @@ +"""The test for the data filter sensor platform.""" +import unittest + +from homeassistant.setup import setup_component +from tests.common import get_test_home_assistant, assert_setup_component + + +class TestFilterSensor(unittest.TestCase): + """Test the Data Filter sensor.""" + + def setup_method(self, method): + """Setup things to be run when tests are started.""" + self.hass = get_test_home_assistant() + self.values = [20, 19, 18, 21, 22, 0] + + def teardown_method(self, method): + """Stop everything that was started.""" + self.hass.stop() + + def test_setup_fail(self): + """Test if filter doesn't exist.""" + config = { + 'sensor': { + 'platform': 'filter', + 'entity_id': 'sensor.test_monitored', + 'filters': [{'filter': 'nonexisting'}] + } + } + with assert_setup_component(0): + assert setup_component(self.hass, 'sensor', config) + + self.hass.start() + self.hass.block_till_done() + + def test_outlier(self): + """Test if filter outlier works.""" + config = { + 'sensor': { + 'platform': 'filter', + 'name': 'test', + 'entity_id': 'sensor.test_monitored', + 'filters': [{ + 'filter': 'outlier', + 'radius': 4.0 + }] + } + } + with assert_setup_component(1): + assert setup_component(self.hass, 'sensor', config) + + self.hass.start() + self.hass.block_till_done() + + for value in self.values: + self.hass.states.set(config['sensor']['entity_id'], value) + self.hass.block_till_done() + + state = self.hass.states.get('sensor.test') + self.assertEqual('22.0', state.state) + + def test_lowpass(self): + """Test if filter lowpass works.""" + config = { + 'sensor': { + 'platform': 'filter', + 'name': 'test', + 'entity_id': 'sensor.test_monitored', + 'filters': [{ + 'filter': 'lowpass', + 'time_constant': 10, + 'precision': 2 + }] + } + } + with assert_setup_component(1): + assert setup_component(self.hass, 'sensor', config) + + self.hass.start() + self.hass.block_till_done() + + for value in self.values: + self.hass.states.set(config['sensor']['entity_id'], value) + self.hass.block_till_done() + + state = self.hass.states.get('sensor.test') + self.assertEqual(18.05, round(float(state.state), 2))