Spaces:
Sleeping
Sleeping
| """Unit tests for `ui_components.py` helpers. | |
| These tests avoid any network or Streamlit runtime dependencies. | |
| """ | |
| import base64 | |
| import io | |
| from ui_components import ( | |
| detect_audio_media_type, | |
| ext_for_media_type, | |
| infer_download_filename, | |
| format_result_for_display, | |
| ) | |
| def _make_wav_bytes(sample_rate=8000, seconds=1): | |
| import wave, struct | |
| n = sample_rate * seconds | |
| buf = io.BytesIO() | |
| with wave.open(buf, "wb") as wf: | |
| wf.setnchannels(1) | |
| wf.setsampwidth(2) | |
| wf.setframerate(sample_rate) | |
| wf.writeframes(struct.pack(f"<{n}h", *([0] * n))) | |
| return buf.getvalue() | |
| def test_detect_wav(): | |
| wav = _make_wav_bytes() | |
| assert detect_audio_media_type(wav) == "audio/wav" | |
| def test_detect_ogg(): | |
| data = b"OggS" + b"\x00" * 16 | |
| assert detect_audio_media_type(data) == "audio/ogg" | |
| def test_detect_mp3_by_id3(): | |
| data = b"ID3" + b"\x00" * 8 | |
| assert detect_audio_media_type(data) == "audio/mpeg" | |
| def test_ext_mapping(): | |
| assert ext_for_media_type("audio/wav") == ".wav" | |
| assert ext_for_media_type("audio/ogg") == ".ogg" | |
| assert ext_for_media_type("audio/mpeg") == ".mp3" | |
| def test_infer_filename(): | |
| assert infer_download_filename("req-123", "audio/wav") == "req-123.wav" | |
| def test_format_result_for_display_minimal(): | |
| r = {"summary": "S", "word_count": 10} | |
| out = format_result_for_display(r) | |
| assert out["summary"] == "S" | |
| assert out["word_count"] == 10 | |
| assert out["transcript"] == "" | |