| import io |
| import warnings |
| import wave |
|
|
| import numpy as np
|
|
|
| from app import LANGUAGES, iris_markup, mock_mode_enabled
|
| from utils import bytes_to_wav, image_to_bytes, safe_call
|
|
|
|
|
| def test_image_to_bytes_accepts_numpy():
|
| image = np.zeros((32, 32, 3), dtype=np.uint8)
|
| result = image_to_bytes(image)
|
| assert result.startswith(b"\xff\xd8")
|
|
|
|
|
| def test_bytes_to_wav_writes_file(tmp_path):
|
| source = io.BytesIO()
|
| with wave.open(source, "wb") as wav_file:
|
| wav_file.setnchannels(1)
|
| wav_file.setsampwidth(2)
|
| wav_file.setframerate(8_000)
|
| wav_file.writeframes(b"\x00\x00" * 80)
|
|
|
| path = bytes_to_wav(source.getvalue())
|
| with wave.open(path, "rb") as wav_file:
|
| assert wav_file.getframerate() == 8_000
|
|
|
|
|
| def test_safe_call_returns_fallback(): |
| def fail(): |
| raise RuntimeError("expected") |
|
|
| with warnings.catch_warnings(): |
| warnings.simplefilter("ignore", UserWarning) |
| assert safe_call(fail, fallback="fallback") == "fallback" |
|
|
|
|
| def test_iris_markup_exposes_state_label():
|
| markup = iris_markup("seeing", "Seeing")
|
| assert "iris seeing" in markup
|
| assert "Seeing" in markup
|
|
|
|
|
| def test_supported_languages_include_demo_languages():
|
| assert LANGUAGES["English"] == "en"
|
| assert LANGUAGES["Chinese"] == "zh"
|
|
|
|
|
| def test_mock_mode_can_be_forced(monkeypatch):
|
| monkeypatch.setenv("THIRD_EYE_MOCK", "true")
|
| assert mock_mode_enabled() is True
|
|
|