from __future__ import annotations from pathlib import Path from yt_scraper.parse import Segment, parse_json3, parse_vtt, merge_adjacent FIXTURES = Path(__file__).parent / "fixtures" def test_parse_json3_basic(): raw = (FIXTURES / "sample.json3").read_text(encoding="utf-8") segs = parse_json3(raw) assert len(segs) >= 2 assert segs[0].start == 0.0 assert "Hola" in segs[0].text assert "segunda" in segs[0].text assert segs[-1].start == 6.0 assert "Tercera" in segs[-1].text def test_parse_json3_skips_empty_events(): raw = (FIXTURES / "sample.json3").read_text(encoding="utf-8") segs = parse_json3(raw) texts = [s.text for s in segs] assert all(t.strip() for t in texts) def test_parse_vtt_basic(): raw = (FIXTURES / "sample.vtt").read_text(encoding="utf-8") segs = parse_vtt(raw) assert len(segs) == 2 assert segs[0].start == 0.0 assert "Hola" in segs[0].text assert "tag" in segs[0].text assert segs[1].start == 6.0 assert "Tercer" in segs[1].text def test_parse_vtt_strips_tags(): raw = (FIXTURES / "sample.vtt").read_text(encoding="utf-8") segs = parse_vtt(raw) assert "