Ctrl K
ComunidadGuías…

tests/test_config.py

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

Archivo original ↗Preguntar a KiBot
"""Tests for YAML config loaders."""

from jobd.config import (
    load_classifier_rules,
    load_profiles,
    load_projects,
    resolve_priority,
    resolve_profile,
)


def test_load_projects(sample_projects_yaml):
    projects = load_projects(sample_projects_yaml)
    assert projects["project-b"].priority == 80
    assert projects["project-a"].priority == 55
    assert projects["_default"].priority == 40


def test_load_profiles(sample_profiles_yaml):
    profiles = load_profiles(sample_profiles_yaml)
    assert profiles["small"].fast_path is True
    assert profiles["gpu-heavy"].vram_gb == 28
    assert profiles["gpu-heavy"].preemptible is True


def test_load_classifier_rules(sample_classifier_yaml):
    rules = load_classifier_rules(sample_classifier_yaml)
    assert len(rules) == 1
    assert rules[0].id == "sdxl-lora-train"
    assert rules[0].confidence == "high"


def test_resolve_priority_known_project(sample_projects_yaml):
    projects = load_projects(sample_projects_yaml)
    assert resolve_priority(projects, "project-b", delta=0) == 80
    assert resolve_priority(projects, "project-b", delta=5) == 85
    assert resolve_priority(projects, "project-b", delta=-15) == 65


def test_resolve_priority_unknown_falls_to_default(sample_projects_yaml):
    projects = load_projects(sample_projects_yaml)
    assert resolve_priority(projects, "unknown-project", delta=0) == 40


def test_resolve_priority_clamps(sample_projects_yaml):
    projects = load_projects(sample_projects_yaml)
    assert resolve_priority(projects, "project-b", delta=50) == 100
    assert resolve_priority(projects, "project-b", delta=-500) == 0


def test_resolve_profile(sample_profiles_yaml):
    profiles = load_profiles(sample_profiles_yaml)
    p = resolve_profile(profiles, "gpu-heavy")
    assert p.vram_gb == 28
    assert p.preemptible is True


def test_resolve_profile_unknown_returns_none(sample_profiles_yaml):
    profiles = load_profiles(sample_profiles_yaml)
    assert resolve_profile(profiles, "does-not-exist") is None