Fix threading error in stream tests (#62221)

This commit is contained in:
J. Nick Koston 2021-12-17 11:26:30 -06:00 committed by GitHub
parent 3b97c544b1
commit a0cd29bbcf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -78,8 +78,9 @@ class SaveRecordWorkerSync:
to avoid thread leaks in tests.
"""
def __init__(self):
def __init__(self, hass):
"""Initialize SaveRecordWorkerSync."""
self._hass = hass
self._save_event = None
self._segments = None
self._save_thread = None
@ -91,7 +92,7 @@ class SaveRecordWorkerSync:
assert self._save_thread is None
self._segments = segments
self._save_thread = threading.current_thread()
self._save_event.set()
self._hass.loop.call_soon_threadsafe(self._save_event.set)
async def get_segments(self):
"""Return the recorded video segments."""
@ -115,7 +116,7 @@ class SaveRecordWorkerSync:
@pytest.fixture()
def record_worker_sync(hass):
"""Patch recorder_save_worker for clean thread shutdown for test."""
sync = SaveRecordWorkerSync()
sync = SaveRecordWorkerSync(hass)
with patch(
"homeassistant.components.stream.recorder.recorder_save_worker",
side_effect=sync.recorder_save_worker,