From dd26ab6b4e5ef11d03497d60174a56577a7050cf Mon Sep 17 00:00:00 2001 From: Oren Date: Sun, 4 Oct 2020 22:38:21 +0300 Subject: [PATCH] Rewrite threshold unittest tests to pytest style test functions (#41141) Co-authored-by: Paulus Schoutsen --- .../threshold/test_binary_sensor.py | 529 +++++++++--------- 1 file changed, 265 insertions(+), 264 deletions(-) diff --git a/tests/components/threshold/test_binary_sensor.py b/tests/components/threshold/test_binary_sensor.py index 3eb6299b3be..66ab9e6cac1 100644 --- a/tests/components/threshold/test_binary_sensor.py +++ b/tests/components/threshold/test_binary_sensor.py @@ -1,384 +1,385 @@ """The test for the threshold sensor platform.""" -import unittest from homeassistant.const import ATTR_UNIT_OF_MEASUREMENT, STATE_UNKNOWN, TEMP_CELSIUS -from homeassistant.setup import setup_component - -from tests.common import get_test_home_assistant +from homeassistant.setup import async_setup_component -class TestThresholdSensor(unittest.TestCase): - """Test the threshold sensor.""" - - def setup_method(self, method): - """Set up things to be run when tests are started.""" - self.hass = get_test_home_assistant() - - def teardown_method(self, method): - """Stop everything that was started.""" - self.hass.stop() - - def test_sensor_upper(self): - """Test if source is above threshold.""" - config = { - "binary_sensor": { - "platform": "threshold", - "upper": "15", - "entity_id": "sensor.test_monitored", - } +async def test_sensor_upper(hass): + """Test if source is above threshold.""" + config = { + "binary_sensor": { + "platform": "threshold", + "upper": "15", + "entity_id": "sensor.test_monitored", } + } - assert setup_component(self.hass, "binary_sensor", config) + assert await async_setup_component(hass, "binary_sensor", config) + await hass.async_block_till_done() - self.hass.states.set( - "sensor.test_monitored", 16, {ATTR_UNIT_OF_MEASUREMENT: TEMP_CELSIUS} - ) - self.hass.block_till_done() + hass.states.async_set( + "sensor.test_monitored", 16, {ATTR_UNIT_OF_MEASUREMENT: TEMP_CELSIUS} + ) + await hass.async_block_till_done() - state = self.hass.states.get("binary_sensor.threshold") + state = hass.states.get("binary_sensor.threshold") - assert "sensor.test_monitored" == state.attributes.get("entity_id") - assert 16 == state.attributes.get("sensor_value") - assert "above" == state.attributes.get("position") - assert float(config["binary_sensor"]["upper"]) == state.attributes.get("upper") - assert 0.0 == state.attributes.get("hysteresis") - assert "upper" == state.attributes.get("type") + assert "sensor.test_monitored" == state.attributes.get("entity_id") + assert 16 == state.attributes.get("sensor_value") + assert "above" == state.attributes.get("position") + assert float(config["binary_sensor"]["upper"]) == state.attributes.get("upper") + assert 0.0 == state.attributes.get("hysteresis") + assert "upper" == state.attributes.get("type") - assert state.state == "on" + assert state.state == "on" - self.hass.states.set("sensor.test_monitored", 14) - self.hass.block_till_done() + hass.states.async_set("sensor.test_monitored", 14) + await hass.async_block_till_done() - state = self.hass.states.get("binary_sensor.threshold") + state = hass.states.get("binary_sensor.threshold") - assert state.state == "off" + assert state.state == "off" - self.hass.states.set("sensor.test_monitored", 15) - self.hass.block_till_done() + hass.states.async_set("sensor.test_monitored", 15) + await hass.async_block_till_done() - state = self.hass.states.get("binary_sensor.threshold") + state = hass.states.get("binary_sensor.threshold") - assert state.state == "off" + assert state.state == "off" - def test_sensor_lower(self): - """Test if source is below threshold.""" - config = { - "binary_sensor": { - "platform": "threshold", - "lower": "15", - "entity_id": "sensor.test_monitored", - } + +async def test_sensor_lower(hass): + """Test if source is below threshold.""" + config = { + "binary_sensor": { + "platform": "threshold", + "lower": "15", + "entity_id": "sensor.test_monitored", } + } - assert setup_component(self.hass, "binary_sensor", config) + assert await async_setup_component(hass, "binary_sensor", config) + await hass.async_block_till_done() - self.hass.states.set("sensor.test_monitored", 16) - self.hass.block_till_done() + hass.states.async_set("sensor.test_monitored", 16) + await hass.async_block_till_done() - state = self.hass.states.get("binary_sensor.threshold") + state = hass.states.get("binary_sensor.threshold") - assert "above" == state.attributes.get("position") - assert float(config["binary_sensor"]["lower"]) == state.attributes.get("lower") - assert 0.0 == state.attributes.get("hysteresis") - assert "lower" == state.attributes.get("type") + assert "above" == state.attributes.get("position") + assert float(config["binary_sensor"]["lower"]) == state.attributes.get("lower") + assert 0.0 == state.attributes.get("hysteresis") + assert "lower" == state.attributes.get("type") - assert state.state == "off" + assert state.state == "off" - self.hass.states.set("sensor.test_monitored", 14) - self.hass.block_till_done() + hass.states.async_set("sensor.test_monitored", 14) + await hass.async_block_till_done() - state = self.hass.states.get("binary_sensor.threshold") + state = hass.states.get("binary_sensor.threshold") - assert state.state == "on" + assert state.state == "on" - def test_sensor_hysteresis(self): - """Test if source is above threshold using hysteresis.""" - config = { - "binary_sensor": { - "platform": "threshold", - "upper": "15", - "hysteresis": "2.5", - "entity_id": "sensor.test_monitored", - } + +async def test_sensor_hysteresis(hass): + """Test if source is above threshold using hysteresis.""" + config = { + "binary_sensor": { + "platform": "threshold", + "upper": "15", + "hysteresis": "2.5", + "entity_id": "sensor.test_monitored", } + } - assert setup_component(self.hass, "binary_sensor", config) + assert await async_setup_component(hass, "binary_sensor", config) + await hass.async_block_till_done() - self.hass.states.set("sensor.test_monitored", 20) - self.hass.block_till_done() + hass.states.async_set("sensor.test_monitored", 20) + await hass.async_block_till_done() - state = self.hass.states.get("binary_sensor.threshold") + state = hass.states.get("binary_sensor.threshold") - assert "above" == state.attributes.get("position") - assert float(config["binary_sensor"]["upper"]) == state.attributes.get("upper") - assert 2.5 == state.attributes.get("hysteresis") - assert "upper" == state.attributes.get("type") + assert "above" == state.attributes.get("position") + assert float(config["binary_sensor"]["upper"]) == state.attributes.get("upper") + assert 2.5 == state.attributes.get("hysteresis") + assert "upper" == state.attributes.get("type") - assert state.state == "on" + assert state.state == "on" - self.hass.states.set("sensor.test_monitored", 13) - self.hass.block_till_done() + hass.states.async_set("sensor.test_monitored", 13) + await hass.async_block_till_done() - state = self.hass.states.get("binary_sensor.threshold") + state = hass.states.get("binary_sensor.threshold") - assert state.state == "on" + assert state.state == "on" - self.hass.states.set("sensor.test_monitored", 12) - self.hass.block_till_done() + hass.states.async_set("sensor.test_monitored", 12) + await hass.async_block_till_done() - state = self.hass.states.get("binary_sensor.threshold") + state = hass.states.get("binary_sensor.threshold") - assert state.state == "off" + assert state.state == "off" - self.hass.states.set("sensor.test_monitored", 17) - self.hass.block_till_done() + hass.states.async_set("sensor.test_monitored", 17) + await hass.async_block_till_done() - state = self.hass.states.get("binary_sensor.threshold") + state = hass.states.get("binary_sensor.threshold") - assert state.state == "off" + assert state.state == "off" - self.hass.states.set("sensor.test_monitored", 18) - self.hass.block_till_done() + hass.states.async_set("sensor.test_monitored", 18) + await hass.async_block_till_done() - state = self.hass.states.get("binary_sensor.threshold") + state = hass.states.get("binary_sensor.threshold") - assert state.state == "on" + assert state.state == "on" - def test_sensor_in_range_no_hysteresis(self): - """Test if source is within the range.""" - config = { - "binary_sensor": { - "platform": "threshold", - "lower": "10", - "upper": "20", - "entity_id": "sensor.test_monitored", - } + +async def test_sensor_in_range_no_hysteresis(hass): + """Test if source is within the range.""" + config = { + "binary_sensor": { + "platform": "threshold", + "lower": "10", + "upper": "20", + "entity_id": "sensor.test_monitored", } + } - assert setup_component(self.hass, "binary_sensor", config) + assert await async_setup_component(hass, "binary_sensor", config) + await hass.async_block_till_done() - self.hass.states.set( - "sensor.test_monitored", 16, {ATTR_UNIT_OF_MEASUREMENT: TEMP_CELSIUS} - ) - self.hass.block_till_done() + hass.states.async_set( + "sensor.test_monitored", 16, {ATTR_UNIT_OF_MEASUREMENT: TEMP_CELSIUS} + ) + await hass.async_block_till_done() - state = self.hass.states.get("binary_sensor.threshold") + state = hass.states.get("binary_sensor.threshold") - assert "sensor.test_monitored" == state.attributes.get("entity_id") - assert 16 == state.attributes.get("sensor_value") - assert "in_range" == state.attributes.get("position") - assert float(config["binary_sensor"]["lower"]) == state.attributes.get("lower") - assert float(config["binary_sensor"]["upper"]) == state.attributes.get("upper") - assert 0.0 == state.attributes.get("hysteresis") - assert "range" == state.attributes.get("type") + assert state.attributes.get("entity_id") == "sensor.test_monitored" + assert 16 == state.attributes.get("sensor_value") + assert "in_range" == state.attributes.get("position") + assert float(config["binary_sensor"]["lower"]) == state.attributes.get("lower") + assert float(config["binary_sensor"]["upper"]) == state.attributes.get("upper") + assert 0.0 == state.attributes.get("hysteresis") + assert "range" == state.attributes.get("type") - assert state.state == "on" + assert state.state == "on" - self.hass.states.set("sensor.test_monitored", 9) - self.hass.block_till_done() + hass.states.async_set("sensor.test_monitored", 9) + await hass.async_block_till_done() - state = self.hass.states.get("binary_sensor.threshold") + state = hass.states.get("binary_sensor.threshold") - assert "below" == state.attributes.get("position") - assert state.state == "off" + assert "below" == state.attributes.get("position") + assert state.state == "off" - self.hass.states.set("sensor.test_monitored", 21) - self.hass.block_till_done() + hass.states.async_set("sensor.test_monitored", 21) + await hass.async_block_till_done() - state = self.hass.states.get("binary_sensor.threshold") + state = hass.states.get("binary_sensor.threshold") - assert "above" == state.attributes.get("position") - assert state.state == "off" + assert "above" == state.attributes.get("position") + assert state.state == "off" - def test_sensor_in_range_with_hysteresis(self): - """Test if source is within the range.""" - config = { - "binary_sensor": { - "platform": "threshold", - "lower": "10", - "upper": "20", - "hysteresis": "2", - "entity_id": "sensor.test_monitored", - } + +async def test_sensor_in_range_with_hysteresis(hass): + """Test if source is within the range.""" + config = { + "binary_sensor": { + "platform": "threshold", + "lower": "10", + "upper": "20", + "hysteresis": "2", + "entity_id": "sensor.test_monitored", } + } - assert setup_component(self.hass, "binary_sensor", config) + assert await async_setup_component(hass, "binary_sensor", config) + await hass.async_block_till_done() - self.hass.states.set( - "sensor.test_monitored", 16, {ATTR_UNIT_OF_MEASUREMENT: TEMP_CELSIUS} - ) - self.hass.block_till_done() + hass.states.async_set( + "sensor.test_monitored", 16, {ATTR_UNIT_OF_MEASUREMENT: TEMP_CELSIUS} + ) + await hass.async_block_till_done() - state = self.hass.states.get("binary_sensor.threshold") + state = hass.states.get("binary_sensor.threshold") - assert "sensor.test_monitored" == state.attributes.get("entity_id") - assert 16 == state.attributes.get("sensor_value") - assert "in_range" == state.attributes.get("position") - assert float(config["binary_sensor"]["lower"]) == state.attributes.get("lower") - assert float(config["binary_sensor"]["upper"]) == state.attributes.get("upper") - assert float(config["binary_sensor"]["hysteresis"]) == state.attributes.get( - "hysteresis" - ) - assert "range" == state.attributes.get("type") + assert "sensor.test_monitored" == state.attributes.get("entity_id") + assert 16 == state.attributes.get("sensor_value") + assert "in_range" == state.attributes.get("position") + assert float(config["binary_sensor"]["lower"]) == state.attributes.get("lower") + assert float(config["binary_sensor"]["upper"]) == state.attributes.get("upper") + assert float(config["binary_sensor"]["hysteresis"]) == state.attributes.get( + "hysteresis" + ) + assert "range" == state.attributes.get("type") - assert state.state == "on" + assert state.state == "on" - self.hass.states.set("sensor.test_monitored", 8) - self.hass.block_till_done() + hass.states.async_set("sensor.test_monitored", 8) + await hass.async_block_till_done() - state = self.hass.states.get("binary_sensor.threshold") + state = hass.states.get("binary_sensor.threshold") - assert "in_range" == state.attributes.get("position") - assert state.state == "on" + assert "in_range" == state.attributes.get("position") + assert state.state == "on" - self.hass.states.set("sensor.test_monitored", 7) - self.hass.block_till_done() + hass.states.async_set("sensor.test_monitored", 7) + await hass.async_block_till_done() - state = self.hass.states.get("binary_sensor.threshold") + state = hass.states.get("binary_sensor.threshold") - assert "below" == state.attributes.get("position") - assert state.state == "off" + assert "below" == state.attributes.get("position") + assert state.state == "off" - self.hass.states.set("sensor.test_monitored", 12) - self.hass.block_till_done() + hass.states.async_set("sensor.test_monitored", 12) + await hass.async_block_till_done() - state = self.hass.states.get("binary_sensor.threshold") + state = hass.states.get("binary_sensor.threshold") - assert "below" == state.attributes.get("position") - assert state.state == "off" + assert "below" == state.attributes.get("position") + assert state.state == "off" - self.hass.states.set("sensor.test_monitored", 13) - self.hass.block_till_done() + hass.states.async_set("sensor.test_monitored", 13) + await hass.async_block_till_done() - state = self.hass.states.get("binary_sensor.threshold") + state = hass.states.get("binary_sensor.threshold") - assert "in_range" == state.attributes.get("position") - assert state.state == "on" + assert "in_range" == state.attributes.get("position") + assert state.state == "on" - self.hass.states.set("sensor.test_monitored", 22) - self.hass.block_till_done() + hass.states.async_set("sensor.test_monitored", 22) + await hass.async_block_till_done() - state = self.hass.states.get("binary_sensor.threshold") + state = hass.states.get("binary_sensor.threshold") - assert "in_range" == state.attributes.get("position") - assert state.state == "on" + assert "in_range" == state.attributes.get("position") + assert state.state == "on" - self.hass.states.set("sensor.test_monitored", 23) - self.hass.block_till_done() + hass.states.async_set("sensor.test_monitored", 23) + await hass.async_block_till_done() - state = self.hass.states.get("binary_sensor.threshold") + state = hass.states.get("binary_sensor.threshold") - assert "above" == state.attributes.get("position") - assert state.state == "off" + assert "above" == state.attributes.get("position") + assert state.state == "off" - self.hass.states.set("sensor.test_monitored", 18) - self.hass.block_till_done() + hass.states.async_set("sensor.test_monitored", 18) + await hass.async_block_till_done() - state = self.hass.states.get("binary_sensor.threshold") + state = hass.states.get("binary_sensor.threshold") - assert "above" == state.attributes.get("position") - assert state.state == "off" + assert "above" == state.attributes.get("position") + assert state.state == "off" - self.hass.states.set("sensor.test_monitored", 17) - self.hass.block_till_done() + hass.states.async_set("sensor.test_monitored", 17) + await hass.async_block_till_done() - state = self.hass.states.get("binary_sensor.threshold") + state = hass.states.get("binary_sensor.threshold") - assert "in_range" == state.attributes.get("position") - assert state.state == "on" + assert "in_range" == state.attributes.get("position") + assert state.state == "on" - def test_sensor_in_range_unknown_state(self): - """Test if source is within the range.""" - config = { - "binary_sensor": { - "platform": "threshold", - "lower": "10", - "upper": "20", - "entity_id": "sensor.test_monitored", - } + +async def test_sensor_in_range_unknown_state(hass): + """Test if source is within the range.""" + config = { + "binary_sensor": { + "platform": "threshold", + "lower": "10", + "upper": "20", + "entity_id": "sensor.test_monitored", } + } - assert setup_component(self.hass, "binary_sensor", config) + assert await async_setup_component(hass, "binary_sensor", config) + await hass.async_block_till_done() - self.hass.states.set( - "sensor.test_monitored", 16, {ATTR_UNIT_OF_MEASUREMENT: TEMP_CELSIUS} - ) - self.hass.block_till_done() + hass.states.async_set( + "sensor.test_monitored", 16, {ATTR_UNIT_OF_MEASUREMENT: TEMP_CELSIUS} + ) + await hass.async_block_till_done() - state = self.hass.states.get("binary_sensor.threshold") + state = hass.states.get("binary_sensor.threshold") - assert "sensor.test_monitored" == state.attributes.get("entity_id") - assert 16 == state.attributes.get("sensor_value") - assert "in_range" == state.attributes.get("position") - assert float(config["binary_sensor"]["lower"]) == state.attributes.get("lower") - assert float(config["binary_sensor"]["upper"]) == state.attributes.get("upper") - assert 0.0 == state.attributes.get("hysteresis") - assert "range" == state.attributes.get("type") + assert "sensor.test_monitored" == state.attributes.get("entity_id") + assert 16 == state.attributes.get("sensor_value") + assert "in_range" == state.attributes.get("position") + assert float(config["binary_sensor"]["lower"]) == state.attributes.get("lower") + assert float(config["binary_sensor"]["upper"]) == state.attributes.get("upper") + assert 0.0 == state.attributes.get("hysteresis") + assert "range" == state.attributes.get("type") - assert state.state == "on" + assert state.state == "on" - self.hass.states.set("sensor.test_monitored", STATE_UNKNOWN) - self.hass.block_till_done() + hass.states.async_set("sensor.test_monitored", STATE_UNKNOWN) + await hass.async_block_till_done() - state = self.hass.states.get("binary_sensor.threshold") + state = hass.states.get("binary_sensor.threshold") - assert "unknown" == state.attributes.get("position") - assert state.state == "off" + assert "unknown" == state.attributes.get("position") + assert state.state == "off" - def test_sensor_lower_zero_threshold(self): - """Test if a lower threshold of zero is set.""" - config = { - "binary_sensor": { - "platform": "threshold", - "lower": "0", - "entity_id": "sensor.test_monitored", - } + +async def test_sensor_lower_zero_threshold(hass): + """Test if a lower threshold of zero is set.""" + config = { + "binary_sensor": { + "platform": "threshold", + "lower": "0", + "entity_id": "sensor.test_monitored", } + } - assert setup_component(self.hass, "binary_sensor", config) + assert await async_setup_component(hass, "binary_sensor", config) + await hass.async_block_till_done() - self.hass.states.set("sensor.test_monitored", 16) - self.hass.block_till_done() + hass.states.async_set("sensor.test_monitored", 16) + await hass.async_block_till_done() - state = self.hass.states.get("binary_sensor.threshold") + state = hass.states.get("binary_sensor.threshold") - assert "lower" == state.attributes.get("type") - assert float(config["binary_sensor"]["lower"]) == state.attributes.get("lower") + assert "lower" == state.attributes.get("type") + assert float(config["binary_sensor"]["lower"]) == state.attributes.get("lower") - assert state.state == "off" + assert state.state == "off" - self.hass.states.set("sensor.test_monitored", -3) - self.hass.block_till_done() + hass.states.async_set("sensor.test_monitored", -3) + await hass.async_block_till_done() - state = self.hass.states.get("binary_sensor.threshold") + state = hass.states.get("binary_sensor.threshold") - assert state.state == "on" + assert state.state == "on" - def test_sensor_upper_zero_threshold(self): - """Test if an upper threshold of zero is set.""" - config = { - "binary_sensor": { - "platform": "threshold", - "upper": "0", - "entity_id": "sensor.test_monitored", - } + +async def test_sensor_upper_zero_threshold(hass): + """Test if an upper threshold of zero is set.""" + config = { + "binary_sensor": { + "platform": "threshold", + "upper": "0", + "entity_id": "sensor.test_monitored", } + } - assert setup_component(self.hass, "binary_sensor", config) + assert await async_setup_component(hass, "binary_sensor", config) + await hass.async_block_till_done() - self.hass.states.set("sensor.test_monitored", -10) - self.hass.block_till_done() + hass.states.async_set("sensor.test_monitored", -10) + await hass.async_block_till_done() - state = self.hass.states.get("binary_sensor.threshold") + state = hass.states.get("binary_sensor.threshold") - assert "upper" == state.attributes.get("type") - assert float(config["binary_sensor"]["upper"]) == state.attributes.get("upper") + assert "upper" == state.attributes.get("type") + assert float(config["binary_sensor"]["upper"]) == state.attributes.get("upper") - assert state.state == "off" + assert state.state == "off" - self.hass.states.set("sensor.test_monitored", 2) - self.hass.block_till_done() + hass.states.async_set("sensor.test_monitored", 2) + await hass.async_block_till_done() - state = self.hass.states.get("binary_sensor.threshold") + state = hass.states.get("binary_sensor.threshold") - assert state.state == "on" + assert state.state == "on"