Ctrl K
ComunidadGuías…

backend/tests/test_foreign_tracks_scheduler.py

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

Archivo original ↗Preguntar a KiBot
"""The sweep must be a first-class scheduler job."""


def test_sweep_job_is_registered():
    from services.scheduler import _build_default_jobs

    spec = next(j for j in _build_default_jobs() if j.id == "foreign_track_sweep")
    assert spec.owner_module == "services.foreign_tracks.sweep"
    assert spec.max_instances == 1


def test_sweep_timeout_exceeds_the_default_budget():
    """A too-tight ceiling produced false 'timeout' rows for the cleanup job
    without ever protecting anything — future.result(timeout=) cannot cancel."""
    from config import get_settings
    from services.scheduler import _build_default_jobs

    spec = next(j for j in _build_default_jobs() if j.id == "foreign_track_sweep")
    budget = int(getattr(get_settings(), "foreign_track_sweep_budget_s", 1800))
    assert spec.timeout_s >= 2 * budget


def test_tick_is_picklable():
    """SQLAlchemyJobStore pickles jobs, so the tick must be a module-level
    callable with no closures."""
    import pickle

    from services.foreign_tracks.sweep import foreign_track_sweep_tick

    assert pickle.loads(pickle.dumps(foreign_track_sweep_tick)) is foreign_track_sweep_tick