Rewrite mold_indicator unittest tests to pytest style test functions (#41598)

This commit is contained in:
CurrentThread 2020-10-16 13:37:15 +02:00 committed by GitHub
parent 965bb2c8df
commit 75f27d6318
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,5 +1,5 @@
"""The tests for the MoldIndicator sensor."""
import unittest
import pytest
from homeassistant.components.mold_indicator.sensor import (
ATTR_CRITICAL_TEMP,
@ -12,36 +12,27 @@ from homeassistant.const import (
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 TestSensorMoldIndicator(unittest.TestCase):
"""Test the MoldIndicator sensor."""
def setUp(self):
@pytest.fixture(autouse=True)
def init_sensors_fixture(hass):
"""Set up things to be run when tests are started."""
self.hass = get_test_home_assistant()
self.hass.states.set(
hass.states.async_set(
"test.indoortemp", "20", {ATTR_UNIT_OF_MEASUREMENT: TEMP_CELSIUS}
)
self.hass.states.set(
hass.states.async_set(
"test.outdoortemp", "10", {ATTR_UNIT_OF_MEASUREMENT: TEMP_CELSIUS}
)
self.hass.states.set(
hass.states.async_set(
"test.indoorhumidity", "50", {ATTR_UNIT_OF_MEASUREMENT: PERCENTAGE}
)
self.addCleanup(self.tear_down_cleanup)
def tear_down_cleanup(self):
"""Stop down everything that was started."""
self.hass.stop()
def test_setup(self):
async def test_setup(hass):
"""Test the mold indicator sensor setup."""
assert setup_component(
self.hass,
assert await async_setup_component(
hass,
sensor.DOMAIN,
{
"sensor": {
@ -53,25 +44,26 @@ class TestSensorMoldIndicator(unittest.TestCase):
}
},
)
self.hass.block_till_done()
moldind = self.hass.states.get("sensor.mold_indicator")
await hass.async_block_till_done()
moldind = hass.states.get("sensor.mold_indicator")
assert moldind
assert PERCENTAGE == moldind.attributes.get("unit_of_measurement")
def test_invalidcalib(self):
async def test_invalidcalib(hass):
"""Test invalid sensor values."""
self.hass.states.set(
hass.states.async_set(
"test.indoortemp", "10", {ATTR_UNIT_OF_MEASUREMENT: TEMP_CELSIUS}
)
self.hass.states.set(
hass.states.async_set(
"test.outdoortemp", "10", {ATTR_UNIT_OF_MEASUREMENT: TEMP_CELSIUS}
)
self.hass.states.set(
hass.states.async_set(
"test.indoorhumidity", "0", {ATTR_UNIT_OF_MEASUREMENT: PERCENTAGE}
)
assert setup_component(
self.hass,
assert await async_setup_component(
hass,
sensor.DOMAIN,
{
"sensor": {
@ -83,29 +75,30 @@ class TestSensorMoldIndicator(unittest.TestCase):
}
},
)
self.hass.block_till_done()
self.hass.start()
self.hass.block_till_done()
moldind = self.hass.states.get("sensor.mold_indicator")
await hass.async_block_till_done()
await hass.async_start()
await hass.async_block_till_done()
moldind = hass.states.get("sensor.mold_indicator")
assert moldind
assert moldind.state == "unavailable"
assert moldind.attributes.get(ATTR_DEWPOINT) is None
assert moldind.attributes.get(ATTR_CRITICAL_TEMP) is None
def test_invalidhum(self):
async def test_invalidhum(hass):
"""Test invalid sensor values."""
self.hass.states.set(
hass.states.async_set(
"test.indoortemp", "10", {ATTR_UNIT_OF_MEASUREMENT: TEMP_CELSIUS}
)
self.hass.states.set(
hass.states.async_set(
"test.outdoortemp", "10", {ATTR_UNIT_OF_MEASUREMENT: TEMP_CELSIUS}
)
self.hass.states.set(
hass.states.async_set(
"test.indoorhumidity", "-1", {ATTR_UNIT_OF_MEASUREMENT: PERCENTAGE}
)
assert setup_component(
self.hass,
assert await async_setup_component(
hass,
sensor.DOMAIN,
{
"sensor": {
@ -118,39 +111,40 @@ class TestSensorMoldIndicator(unittest.TestCase):
},
)
self.hass.block_till_done()
self.hass.start()
self.hass.block_till_done()
moldind = self.hass.states.get("sensor.mold_indicator")
await hass.async_block_till_done()
await hass.async_start()
await hass.async_block_till_done()
moldind = hass.states.get("sensor.mold_indicator")
assert moldind
assert moldind.state == "unavailable"
assert moldind.attributes.get(ATTR_DEWPOINT) is None
assert moldind.attributes.get(ATTR_CRITICAL_TEMP) is None
self.hass.states.set(
hass.states.async_set(
"test.indoorhumidity", "A", {ATTR_UNIT_OF_MEASUREMENT: PERCENTAGE}
)
self.hass.block_till_done()
moldind = self.hass.states.get("sensor.mold_indicator")
await hass.async_block_till_done()
moldind = hass.states.get("sensor.mold_indicator")
assert moldind
assert moldind.state == "unavailable"
assert moldind.attributes.get(ATTR_DEWPOINT) is None
assert moldind.attributes.get(ATTR_CRITICAL_TEMP) is None
self.hass.states.set(
hass.states.async_set(
"test.indoorhumidity", "10", {ATTR_UNIT_OF_MEASUREMENT: TEMP_CELSIUS}
)
self.hass.block_till_done()
moldind = self.hass.states.get("sensor.mold_indicator")
await hass.async_block_till_done()
moldind = hass.states.get("sensor.mold_indicator")
assert moldind
assert moldind.state == "unavailable"
assert moldind.attributes.get(ATTR_DEWPOINT) is None
assert moldind.attributes.get(ATTR_CRITICAL_TEMP) is None
def test_calculation(self):
async def test_calculation(hass):
"""Test the mold indicator internal calculations."""
assert setup_component(
self.hass,
assert await async_setup_component(
hass,
sensor.DOMAIN,
{
"sensor": {
@ -162,10 +156,10 @@ class TestSensorMoldIndicator(unittest.TestCase):
}
},
)
self.hass.block_till_done()
self.hass.start()
self.hass.block_till_done()
moldind = self.hass.states.get("sensor.mold_indicator")
await hass.async_block_till_done()
await hass.async_start()
await hass.async_block_till_done()
moldind = hass.states.get("sensor.mold_indicator")
assert moldind
# assert dewpoint
@ -185,10 +179,11 @@ class TestSensorMoldIndicator(unittest.TestCase):
assert state
assert state == "68"
def test_unknown_sensor(self):
async def test_unknown_sensor(hass):
"""Test the sensor_changed function."""
assert setup_component(
self.hass,
assert await async_setup_component(
hass,
sensor.DOMAIN,
{
"sensor": {
@ -200,52 +195,52 @@ class TestSensorMoldIndicator(unittest.TestCase):
}
},
)
self.hass.block_till_done()
self.hass.start()
await hass.async_block_till_done()
await hass.async_start()
self.hass.states.set(
hass.states.async_set(
"test.indoortemp", STATE_UNKNOWN, {ATTR_UNIT_OF_MEASUREMENT: TEMP_CELSIUS}
)
self.hass.block_till_done()
moldind = self.hass.states.get("sensor.mold_indicator")
await hass.async_block_till_done()
moldind = hass.states.get("sensor.mold_indicator")
assert moldind
assert moldind.state == "unavailable"
assert moldind.attributes.get(ATTR_DEWPOINT) is None
assert moldind.attributes.get(ATTR_CRITICAL_TEMP) is None
self.hass.states.set(
hass.states.async_set(
"test.indoortemp", "30", {ATTR_UNIT_OF_MEASUREMENT: TEMP_CELSIUS}
)
self.hass.states.set(
hass.states.async_set(
"test.outdoortemp", STATE_UNKNOWN, {ATTR_UNIT_OF_MEASUREMENT: TEMP_CELSIUS}
)
self.hass.block_till_done()
moldind = self.hass.states.get("sensor.mold_indicator")
await hass.async_block_till_done()
moldind = hass.states.get("sensor.mold_indicator")
assert moldind
assert moldind.state == "unavailable"
assert moldind.attributes.get(ATTR_DEWPOINT) is None
assert moldind.attributes.get(ATTR_CRITICAL_TEMP) is None
self.hass.states.set(
hass.states.async_set(
"test.outdoortemp", "25", {ATTR_UNIT_OF_MEASUREMENT: TEMP_CELSIUS}
)
self.hass.states.set(
hass.states.async_set(
"test.indoorhumidity",
STATE_UNKNOWN,
{ATTR_UNIT_OF_MEASUREMENT: PERCENTAGE},
)
self.hass.block_till_done()
moldind = self.hass.states.get("sensor.mold_indicator")
await hass.async_block_till_done()
moldind = hass.states.get("sensor.mold_indicator")
assert moldind
assert moldind.state == "unavailable"
assert moldind.attributes.get(ATTR_DEWPOINT) is None
assert moldind.attributes.get(ATTR_CRITICAL_TEMP) is None
self.hass.states.set(
hass.states.async_set(
"test.indoorhumidity", "20", {ATTR_UNIT_OF_MEASUREMENT: PERCENTAGE}
)
self.hass.block_till_done()
moldind = self.hass.states.get("sensor.mold_indicator")
await hass.async_block_till_done()
moldind = hass.states.get("sensor.mold_indicator")
assert moldind
assert moldind.state == "23"
@ -258,10 +253,11 @@ class TestSensorMoldIndicator(unittest.TestCase):
assert esttemp
assert esttemp == 27.5
def test_sensor_changed(self):
async def test_sensor_changed(hass):
"""Test the sensor_changed function."""
assert setup_component(
self.hass,
assert await async_setup_component(
hass,
sensor.DOMAIN,
{
"sensor": {
@ -273,23 +269,23 @@ class TestSensorMoldIndicator(unittest.TestCase):
}
},
)
self.hass.block_till_done()
self.hass.start()
await hass.async_block_till_done()
await hass.async_start()
self.hass.states.set(
hass.states.async_set(
"test.indoortemp", "30", {ATTR_UNIT_OF_MEASUREMENT: TEMP_CELSIUS}
)
self.hass.block_till_done()
assert self.hass.states.get("sensor.mold_indicator").state == "90"
await hass.async_block_till_done()
assert hass.states.get("sensor.mold_indicator").state == "90"
self.hass.states.set(
hass.states.async_set(
"test.outdoortemp", "25", {ATTR_UNIT_OF_MEASUREMENT: TEMP_CELSIUS}
)
self.hass.block_till_done()
assert self.hass.states.get("sensor.mold_indicator").state == "57"
await hass.async_block_till_done()
assert hass.states.get("sensor.mold_indicator").state == "57"
self.hass.states.set(
hass.states.async_set(
"test.indoorhumidity", "20", {ATTR_UNIT_OF_MEASUREMENT: PERCENTAGE}
)
self.hass.block_till_done()
assert self.hass.states.get("sensor.mold_indicator").state == "23"
await hass.async_block_till_done()
assert hass.states.get("sensor.mold_indicator").state == "23"