Files
Owner/tests/test_simulation.py
T

37 lines
1.4 KiB
Python

from __future__ import annotations
import tempfile
import unittest
from pathlib import Path
from owner_voice_pet.simulation import run_simulated_live
class SimulationTests(unittest.TestCase):
def test_simulated_live_runs_two_turns_with_context_and_noise_filter(self) -> None:
result = run_simulated_live(turns=2)
self.assertTrue(result["success"], result)
self.assertEqual(result["completed_turns"], 2)
self.assertEqual(result["failed_turns"], 0)
self.assertEqual(result["final_transcripts"], ["第1轮模拟问题", "第2轮模拟问题"])
self.assertNotIn("", result["partials"])
self.assertNotIn("家确", result["partials"])
self.assertTrue(result["checks"]["context_in_second_turn"])
self.assertTrue(result["checks"]["denoised_capture"])
self.assertEqual(result["checks"]["standby_per_turn"], True)
def test_simulated_live_can_write_and_replay_fixture(self) -> None:
with tempfile.TemporaryDirectory() as tmp:
fixture = Path(tmp) / "simulated-mic.jsonl"
generated = run_simulated_live(turns=1, write_fixture=fixture)
replayed = run_simulated_live(turns=1, fixture_path=fixture)
self.assertTrue(generated["success"], generated)
self.assertTrue(replayed["success"], replayed)
self.assertEqual(replayed["final_transcripts"], ["第1轮模拟问题"])
if __name__ == "__main__":
unittest.main()