From c029d29f114a4f0eaa9202d06c1bb990453502e2 Mon Sep 17 00:00:00 2001 From: Elena Rogleva Date: Tue, 10 Nov 2020 12:11:56 +0200 Subject: [PATCH] Rewrite the pilight/test_sensor.py tests to use async pytest functions (#42418) --- tests/components/pilight/test_sensor.py | 89 ++++++++++++------------- 1 file changed, 42 insertions(+), 47 deletions(-) diff --git a/tests/components/pilight/test_sensor.py b/tests/components/pilight/test_sensor.py index 54c72675bc7..e4ab4ce5651 100644 --- a/tests/components/pilight/test_sensor.py +++ b/tests/components/pilight/test_sensor.py @@ -1,42 +1,34 @@ """The tests for the Pilight sensor platform.""" import logging +import pytest + from homeassistant.components import pilight import homeassistant.components.sensor as sensor -from homeassistant.setup import setup_component +from homeassistant.setup import async_setup_component -from tests.common import assert_setup_component, get_test_home_assistant, mock_component - -HASS = None +from tests.common import assert_setup_component, mock_component -def fire_pilight_message(protocol, data): +@pytest.fixture(autouse=True) +def setup_comp(hass): + """Initialize components.""" + mock_component(hass, "pilight") + + +def fire_pilight_message(hass, protocol, data): """Fire the fake Pilight message.""" message = {pilight.CONF_PROTOCOL: protocol} message.update(data) - HASS.bus.fire(pilight.EVENT, message) + + hass.bus.async_fire(pilight.EVENT, message) -# pylint: disable=invalid-name -def setup_function(): - """Initialize a Home Assistant server.""" - global HASS - - HASS = get_test_home_assistant() - mock_component(HASS, "pilight") - - -# pylint: disable=invalid-name -def teardown_function(): - """Stop the Home Assistant server.""" - HASS.stop() - - -def test_sensor_value_from_code(): +async def test_sensor_value_from_code(hass): """Test the setting of value via pilight.""" with assert_setup_component(1): - setup_component( - HASS, + assert await async_setup_component( + hass, sensor.DOMAIN, { sensor.DOMAIN: { @@ -48,26 +40,26 @@ def test_sensor_value_from_code(): } }, ) - HASS.block_till_done() + await hass.async_block_till_done() - state = HASS.states.get("sensor.test") + state = hass.states.get("sensor.test") assert state.state == "unknown" unit_of_measurement = state.attributes.get("unit_of_measurement") assert unit_of_measurement == "fav unit" # Set value from data with correct payload - fire_pilight_message(protocol="test-protocol", data={"test": 42}) - HASS.block_till_done() - state = HASS.states.get("sensor.test") + fire_pilight_message(hass, protocol="test-protocol", data={"test": 42}) + await hass.async_block_till_done() + state = hass.states.get("sensor.test") assert state.state == "42" -def test_disregard_wrong_payload(): +async def test_disregard_wrong_payload(hass): """Test omitting setting of value with wrong payload.""" with assert_setup_component(1): - setup_component( - HASS, + assert await async_setup_component( + hass, sensor.DOMAIN, { sensor.DOMAIN: { @@ -78,40 +70,41 @@ def test_disregard_wrong_payload(): } }, ) - HASS.block_till_done() + await hass.async_block_till_done() # Try set value from data with incorrect payload fire_pilight_message( - protocol="test-protocol_2", data={"test": "data", "uuid": "0-0-0-0"} + hass, protocol="test-protocol_2", data={"test": "data", "uuid": "0-0-0-0"} ) - HASS.block_till_done() - state = HASS.states.get("sensor.test_2") + await hass.async_block_till_done() + state = hass.states.get("sensor.test_2") assert state.state == "unknown" # Try set value from data with partially matched payload fire_pilight_message( - protocol="wrong-protocol", data={"test": "data", "uuid": "1-2-3-4"} + hass, protocol="wrong-protocol", data={"test": "data", "uuid": "1-2-3-4"} ) - HASS.block_till_done() - state = HASS.states.get("sensor.test_2") + await hass.async_block_till_done() + state = hass.states.get("sensor.test_2") assert state.state == "unknown" # Try set value from data with fully matched payload fire_pilight_message( + hass, protocol="test-protocol_2", data={"test": "data", "uuid": "1-2-3-4", "other_payload": 3.141}, ) - HASS.block_till_done() - state = HASS.states.get("sensor.test_2") + await hass.async_block_till_done() + state = hass.states.get("sensor.test_2") assert state.state == "data" -def test_variable_missing(caplog): +async def test_variable_missing(hass, caplog): """Check if error message when variable missing.""" caplog.set_level(logging.ERROR) with assert_setup_component(1): - setup_component( - HASS, + assert await async_setup_component( + hass, sensor.DOMAIN, { sensor.DOMAIN: { @@ -122,13 +115,15 @@ def test_variable_missing(caplog): } }, ) - HASS.block_till_done() + await hass.async_block_till_done() # Create code without sensor variable fire_pilight_message( - protocol="test-protocol", data={"uuid": "1-2-3-4", "other_variable": 3.141} + hass, + protocol="test-protocol", + data={"uuid": "1-2-3-4", "other_variable": 3.141}, ) - HASS.block_till_done() + await hass.async_block_till_done() logs = caplog.text