Use eventloop for scheduling (#37184)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
This commit is contained in:
parent
0f72008090
commit
89a9634d35
42 changed files with 366 additions and 272 deletions
|
@ -1,46 +1,59 @@
|
|||
"""The test for the moon sensor platform."""
|
||||
from datetime import datetime
|
||||
import unittest
|
||||
|
||||
from homeassistant.setup import setup_component
|
||||
from homeassistant.components.homeassistant import (
|
||||
DOMAIN as HA_DOMAIN,
|
||||
SERVICE_UPDATE_ENTITY,
|
||||
)
|
||||
from homeassistant.const import ATTR_ENTITY_ID
|
||||
from homeassistant.setup import async_setup_component
|
||||
import homeassistant.util.dt as dt_util
|
||||
|
||||
from tests.async_mock import patch
|
||||
from tests.common import get_test_home_assistant
|
||||
|
||||
DAY1 = datetime(2017, 1, 1, 1, tzinfo=dt_util.UTC)
|
||||
DAY2 = datetime(2017, 1, 18, 1, tzinfo=dt_util.UTC)
|
||||
|
||||
|
||||
class TestMoonSensor(unittest.TestCase):
|
||||
async def test_moon_day1(hass):
|
||||
"""Test the Moon sensor."""
|
||||
config = {"sensor": {"platform": "moon", "name": "moon_day1"}}
|
||||
|
||||
def setup_method(self, method):
|
||||
"""Set up things to be run when tests are started."""
|
||||
self.hass = get_test_home_assistant()
|
||||
await async_setup_component(hass, HA_DOMAIN, {})
|
||||
assert await async_setup_component(hass, "sensor", config)
|
||||
await hass.async_block_till_done()
|
||||
|
||||
def teardown_method(self, method):
|
||||
"""Stop everything that was started."""
|
||||
self.hass.stop()
|
||||
assert hass.states.get("sensor.moon_day1")
|
||||
|
||||
@patch("homeassistant.components.moon.sensor.dt_util.utcnow", return_value=DAY1)
|
||||
def test_moon_day1(self, mock_request):
|
||||
"""Test the Moon sensor."""
|
||||
config = {"sensor": {"platform": "moon", "name": "moon_day1"}}
|
||||
with patch(
|
||||
"homeassistant.components.moon.sensor.dt_util.utcnow", return_value=DAY1
|
||||
):
|
||||
await async_update_entity(hass, "sensor.moon_day1")
|
||||
|
||||
assert setup_component(self.hass, "sensor", config)
|
||||
self.hass.block_till_done()
|
||||
assert hass.states.get("sensor.moon_day1").state == "waxing_crescent"
|
||||
|
||||
state = self.hass.states.get("sensor.moon_day1")
|
||||
assert state.state == "waxing_crescent"
|
||||
|
||||
@patch("homeassistant.components.moon.sensor.dt_util.utcnow", return_value=DAY2)
|
||||
def test_moon_day2(self, mock_request):
|
||||
"""Test the Moon sensor."""
|
||||
config = {"sensor": {"platform": "moon", "name": "moon_day2"}}
|
||||
async def test_moon_day2(hass):
|
||||
"""Test the Moon sensor."""
|
||||
config = {"sensor": {"platform": "moon", "name": "moon_day2"}}
|
||||
|
||||
assert setup_component(self.hass, "sensor", config)
|
||||
self.hass.block_till_done()
|
||||
await async_setup_component(hass, HA_DOMAIN, {})
|
||||
assert await async_setup_component(hass, "sensor", config)
|
||||
await hass.async_block_till_done()
|
||||
|
||||
state = self.hass.states.get("sensor.moon_day2")
|
||||
assert state.state == "waning_gibbous"
|
||||
assert hass.states.get("sensor.moon_day2")
|
||||
|
||||
with patch(
|
||||
"homeassistant.components.moon.sensor.dt_util.utcnow", return_value=DAY2
|
||||
):
|
||||
await async_update_entity(hass, "sensor.moon_day2")
|
||||
|
||||
assert hass.states.get("sensor.moon_day2").state == "waning_gibbous"
|
||||
|
||||
|
||||
async def async_update_entity(hass, entity_id):
|
||||
"""Run an update action for an entity."""
|
||||
await hass.services.async_call(
|
||||
HA_DOMAIN, SERVICE_UPDATE_ENTITY, {ATTR_ENTITY_ID: entity_id}, blocking=True,
|
||||
)
|
||||
await hass.async_block_till_done()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue