Fix logbook JSON serialize issue (#13229)
* Fix logbook JSON serialize issue * Address flakiness * Lint * deflake ? * Deflake 2
This commit is contained in:
parent
ee6d6a8859
commit
170b8671b9
4 changed files with 29 additions and 15 deletions
|
@ -139,9 +139,12 @@ class LogbookView(HomeAssistantView):
|
|||
end_day = start_day + timedelta(days=1)
|
||||
hass = request.app['hass']
|
||||
|
||||
events = yield from hass.async_add_job(
|
||||
_get_events, hass, self.config, start_day, end_day)
|
||||
response = yield from hass.async_add_job(self.json, events)
|
||||
def json_events():
|
||||
"""Fetch events and generate JSON."""
|
||||
return self.json(list(
|
||||
_get_events(hass, self.config, start_day, end_day)))
|
||||
|
||||
response = yield from hass.async_add_job(json_events)
|
||||
return response
|
||||
|
||||
|
||||
|
|
|
@ -29,6 +29,7 @@ import homeassistant.helpers.config_validation as cv
|
|||
from homeassistant.helpers.entityfilter import generate_filter
|
||||
from homeassistant.helpers.typing import ConfigType
|
||||
import homeassistant.util.dt as dt_util
|
||||
from homeassistant.loader import bind_hass
|
||||
|
||||
from . import migration, purge
|
||||
from .const import DATA_INSTANCE
|
||||
|
@ -87,14 +88,10 @@ CONFIG_SCHEMA = vol.Schema({
|
|||
}, extra=vol.ALLOW_EXTRA)
|
||||
|
||||
|
||||
@asyncio.coroutine
|
||||
def wait_connection_ready(hass):
|
||||
"""
|
||||
Wait till the connection is ready.
|
||||
|
||||
Returns a coroutine object.
|
||||
"""
|
||||
return (yield from hass.data[DATA_INSTANCE].async_db_ready)
|
||||
@bind_hass
|
||||
async def wait_connection_ready(hass):
|
||||
"""Wait till the connection is ready."""
|
||||
return await hass.data[DATA_INSTANCE].async_db_ready
|
||||
|
||||
|
||||
def run_information(hass, point_in_time: Optional[datetime] = None):
|
||||
|
|
|
@ -483,11 +483,13 @@ class TestComponentHistory(unittest.TestCase):
|
|||
return zero, four, states
|
||||
|
||||
|
||||
async def test_fetch_period_api(hass, test_client):
|
||||
async def test_fetch_period_api(hass, aiohttp_client):
|
||||
"""Test the fetch period view for history."""
|
||||
await hass.async_add_job(init_recorder_component, hass)
|
||||
await async_setup_component(hass, 'history', {})
|
||||
client = await test_client(hass.http.app)
|
||||
await hass.components.recorder.wait_connection_ready()
|
||||
await hass.async_add_job(hass.data[recorder.DATA_INSTANCE].block_till_done)
|
||||
client = await aiohttp_client(hass.http.app)
|
||||
response = await client.get(
|
||||
'/api/history/period/{}'.format(dt_util.utcnow().isoformat()))
|
||||
assert response.status == 200
|
||||
|
|
|
@ -10,8 +10,8 @@ from homeassistant.const import (
|
|||
EVENT_STATE_CHANGED, EVENT_HOMEASSISTANT_START, EVENT_HOMEASSISTANT_STOP,
|
||||
ATTR_HIDDEN, STATE_NOT_HOME, STATE_ON, STATE_OFF)
|
||||
import homeassistant.util.dt as dt_util
|
||||
from homeassistant.components import logbook
|
||||
from homeassistant.setup import setup_component
|
||||
from homeassistant.components import logbook, recorder
|
||||
from homeassistant.setup import setup_component, async_setup_component
|
||||
|
||||
from tests.common import (
|
||||
init_recorder_component, get_test_home_assistant)
|
||||
|
@ -555,3 +555,15 @@ class TestComponentLogbook(unittest.TestCase):
|
|||
'old_state': state,
|
||||
'new_state': state,
|
||||
}, time_fired=event_time_fired)
|
||||
|
||||
|
||||
async def test_logbook_view(hass, aiohttp_client):
|
||||
"""Test the logbook view."""
|
||||
await hass.async_add_job(init_recorder_component, hass)
|
||||
await async_setup_component(hass, 'logbook', {})
|
||||
await hass.components.recorder.wait_connection_ready()
|
||||
await hass.async_add_job(hass.data[recorder.DATA_INSTANCE].block_till_done)
|
||||
client = await aiohttp_client(hass.http.app)
|
||||
response = await client.get(
|
||||
'/api/logbook/{}'.format(dt_util.utcnow().isoformat()))
|
||||
assert response.status == 200
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue