hass-core/tests/patch_recorder.py
Erik Montnemery 5dbd7684ce
Fail tests if recorder creates nested sessions (#122579)
* Fail tests if recorder creates nested sessions

* Adjust import order

* Move get_instance
2024-07-25 21:18:55 +02:00

27 lines
727 B
Python

"""Patch recorder related functions."""
from __future__ import annotations
from contextlib import contextmanager
import sys
# Patch recorder util session scope
from homeassistant.helpers import recorder as recorder_helper # noqa: E402
# Make sure homeassistant.components.recorder.util is not already imported
assert "homeassistant.components.recorder.util" not in sys.modules
real_session_scope = recorder_helper.session_scope
@contextmanager
def _session_scope_wrapper(*args, **kwargs):
"""Make session_scope patchable.
This function will be imported by recorder modules.
"""
with real_session_scope(*args, **kwargs) as ses:
yield ses
recorder_helper.session_scope = _session_scope_wrapper