Files
tia_regional_xai_tts_pool/tests/livekit/test_compat.py
2026-08-21 08:37:51 -03:00

74 lines
2.0 KiB
Python

from __future__ import annotations
import types
import pytest
from app.livekit.compat import patch_inference_executor_is_alive
def test_patch_inference_executor_is_alive_handles_closed_process(monkeypatch) -> None:
fake_module = types.SimpleNamespace()
class FakeInferenceProcExecutor:
def is_alive(self) -> bool:
raise ValueError("process object is closed")
fake_module.InferenceProcExecutor = FakeInferenceProcExecutor
monkeypatch.setattr(
"app.livekit.compat.import_module",
lambda name: fake_module,
)
patched = patch_inference_executor_is_alive()
assert patched is True
assert FakeInferenceProcExecutor().is_alive() is False
def test_patch_inference_executor_is_alive_preserves_other_value_errors(monkeypatch) -> None:
fake_module = types.SimpleNamespace()
class FakeInferenceProcExecutor:
def is_alive(self) -> bool:
raise ValueError("unexpected failure")
fake_module.InferenceProcExecutor = FakeInferenceProcExecutor
monkeypatch.setattr(
"app.livekit.compat.import_module",
lambda name: fake_module,
)
patch_inference_executor_is_alive()
with pytest.raises(ValueError, match="unexpected failure"):
FakeInferenceProcExecutor().is_alive()
def test_patch_inference_executor_is_alive_is_idempotent(monkeypatch) -> None:
fake_module = types.SimpleNamespace()
class FakeInferenceProcExecutor:
calls = 0
def is_alive(self) -> bool:
type(self).calls += 1
raise ValueError("process object is closed")
fake_module.InferenceProcExecutor = FakeInferenceProcExecutor
monkeypatch.setattr(
"app.livekit.compat.import_module",
lambda name: fake_module,
)
first = patch_inference_executor_is_alive()
second = patch_inference_executor_is_alive()
assert first is True
assert second is False
assert FakeInferenceProcExecutor().is_alive() is False
assert FakeInferenceProcExecutor.calls == 1