Первоначальная версия VidConf
This commit is contained in:
48
backend/tests/test_summarizer_transcript.py
Normal file
48
backend/tests/test_summarizer_transcript.py
Normal file
@@ -0,0 +1,48 @@
|
||||
"""Тесты чистой функции `build_transcript` (сборка строк-фраз для суммаризации)."""
|
||||
|
||||
from workers.summarizer.transcript import TranscriptLine, build_transcript
|
||||
|
||||
|
||||
def test_empty_lines_produce_empty_transcript() -> None:
|
||||
"""Пустой список фраз → пустая строка."""
|
||||
assert build_transcript([]) == ""
|
||||
|
||||
|
||||
def test_single_line_mm_ss_format_under_one_hour() -> None:
|
||||
"""Смещение меньше часа форматируется как `MM:SS`."""
|
||||
lines = [TranscriptLine(speaker="Аня", offset_s=65.0, text="привет всем")]
|
||||
|
||||
assert build_transcript(lines) == "[Аня 01:05] привет всем"
|
||||
|
||||
|
||||
def test_offset_at_or_above_one_hour_uses_hh_mm_ss_format() -> None:
|
||||
"""Смещение от часа и больше форматируется как `ЧЧ:MM:SS`."""
|
||||
lines = [TranscriptLine(speaker="Боря", offset_s=3725.0, text="подведём итоги")]
|
||||
|
||||
assert build_transcript(lines) == "[Боря 1:02:05] подведём итоги"
|
||||
|
||||
|
||||
def test_lines_are_sorted_by_offset_regardless_of_input_order() -> None:
|
||||
"""Строки транскрипта сортируются по `offset_s`, даже если поданы вразнобой."""
|
||||
lines = [
|
||||
TranscriptLine(speaker="Боря", offset_s=10.0, text="второй"),
|
||||
TranscriptLine(speaker="Аня", offset_s=0.0, text="первый"),
|
||||
TranscriptLine(speaker="Боря", offset_s=20.0, text="третий"),
|
||||
]
|
||||
|
||||
result = build_transcript(lines)
|
||||
|
||||
assert result == "\n".join(
|
||||
[
|
||||
"[Аня 00:00] первый",
|
||||
"[Боря 00:10] второй",
|
||||
"[Боря 00:20] третий",
|
||||
]
|
||||
)
|
||||
|
||||
|
||||
def test_zero_offset_formats_as_zero_minutes_zero_seconds() -> None:
|
||||
"""Нулевое смещение → `00:00`."""
|
||||
lines = [TranscriptLine(speaker="Аня", offset_s=0.0, text="начало")]
|
||||
|
||||
assert build_transcript(lines) == "[Аня 00:00] начало"
|
||||
Reference in New Issue
Block a user