Ctrl K
ComunidadGuías…

tests/test_eval_yaml_loader.py

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

Archivo original ↗Preguntar a KiBot
import pytest

from dm.eval.schema import EvalCaseError
from dm.eval.yaml_loader import load_eval_cases


VALID = """\
- id: C1
  category: direct
  question: How many rows?
  grader: numeric
  truth_sql: SELECT COUNT(*) FROM material
"""


def test_load_eval_cases_validates_yaml_and_schema():
    cases = load_eval_cases(VALID)
    assert cases[0]["id"] == "C1"


def test_load_eval_cases_rejects_duplicate_yaml_keys():
    duplicate = VALID.replace("  category: direct\n", "  category: direct\n  category: join\n")
    with pytest.raises(EvalCaseError, match="duplicate YAML key"):
        load_eval_cases(duplicate)


def test_load_eval_cases_normalizes_parser_errors():
    with pytest.raises(EvalCaseError, match="YAML is invalid"):
        load_eval_cases("- [unterminated")