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