mirror of
https://github.com/home-assistant/core.git
synced 2025-12-24 21:06:19 +00:00
Remove usage of "run_until_complete" (#16617)
* De-run_forever()-ization * Use asyncio.run (or our own implementation on Python <3.7) * hass.start is only used by tests * setup_and_run_hass() is now async * Add "main" async hass.run method * move SIGINT handling to helpers/signal.py * add flag to .run to disable hass's signal handlers * Teach async_start and async_stop to not step on each other (more than necessary) * shorten over-long lines * restore missing "import asyncio" * move run_asyncio to homeassistant.util.async_ * LOGGER: warn => warning * Add "force" flag to async_stop only useful for testing * Add 'attrs==18.2.0' to requirements_all.txt Required for keeping requirements_test_all.txt in sync, where it is in turn required to prevent auto-downgrading "attrs" during "pip install" * Fixes for mypy * Fix "mock_signal" fixture * Revert mistaken edit * Flake8 fixes * mypy fixes * pylint fix * Revert adding attrs== to requirements_test*.txt solved by using "pip -c" * Rename "run" to "async_run", as per calling conventions
This commit is contained in:
committed by
Paulus Schoutsen
parent
da108f1999
commit
0121e3cb04
@@ -182,10 +182,14 @@ def test_reconnect(hass, monkeypatch, mock_connection_factory):
|
||||
|
||||
# mock waiting coroutine while connection lasts
|
||||
closed = asyncio.Event(loop=hass.loop)
|
||||
# Handshake so that `hass.async_block_till_done()` doesn't cycle forever
|
||||
closed2 = asyncio.Event(loop=hass.loop)
|
||||
|
||||
@asyncio.coroutine
|
||||
def wait_closed():
|
||||
yield from closed.wait()
|
||||
closed2.set()
|
||||
closed.clear()
|
||||
protocol.wait_closed = wait_closed
|
||||
|
||||
yield from async_setup_component(hass, 'sensor', {'sensor': config})
|
||||
@@ -195,8 +199,11 @@ def test_reconnect(hass, monkeypatch, mock_connection_factory):
|
||||
# indicate disconnect, release wait lock and allow reconnect to happen
|
||||
closed.set()
|
||||
# wait for lock set to resolve
|
||||
yield from hass.async_block_till_done()
|
||||
# wait for sleep to resolve
|
||||
yield from closed2.wait()
|
||||
closed2.clear()
|
||||
assert not closed.is_set()
|
||||
|
||||
closed.set()
|
||||
yield from hass.async_block_till_done()
|
||||
|
||||
assert connection_factory.call_count >= 2, \
|
||||
|
||||
Reference in New Issue
Block a user