Ctrl K
ComunidadGuías…

backend/tests/test_foreign_tracks_probe.py

Rama master · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
"""Tests for the shared per-file foreign-track verdict."""

from services.foreign_tracks.probe import expand_keep_languages, foreign_languages


def _probe(*langs):
    return {"streams": [{"codec_type": "subtitle", "tags": {"language": lang}} for lang in langs]}


def test_returns_languages_outside_the_keep_set():
    keep = expand_keep_languages(["de", "en"])
    assert foreign_languages(_probe("spa", "ger", "ita"), keep, keep_und=False) == ["spa", "ita"]


def test_keeps_every_tag_of_a_kept_language():
    keep = expand_keep_languages(["de"])
    assert foreign_languages(_probe("ger", "deu", "de"), keep, keep_und=False) == []


def test_und_is_foreign_unless_kept():
    keep = expand_keep_languages(["de"])
    assert foreign_languages(_probe("und"), keep, keep_und=False) == ["und"]
    assert foreign_languages(_probe("und"), keep, keep_und=True) == []


def test_a_missing_language_tag_counts_as_und():
    keep = expand_keep_languages(["de"])
    probe = {"streams": [{"codec_type": "subtitle", "tags": {}}]}
    assert foreign_languages(probe, keep, keep_und=False) == ["und"]


def test_non_subtitle_streams_are_ignored():
    keep = expand_keep_languages(["de"])
    probe = {"streams": [{"codec_type": "audio", "tags": {"language": "spa"}}]}
    assert foreign_languages(probe, keep, keep_und=False) == []


def test_empty_keep_set_yields_nothing_rather_than_everything():
    """Guard duty belongs to the caller, but this helper must not be the one
    that hands back 'strip every subtitle in the library'."""
    assert foreign_languages(_probe("spa", "ger"), set(), keep_und=False) == []