Ctrl K
ComunidadGuías…

backend/tests/test_cleanup_signs_wiring.py

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

Archivo original ↗Preguntar a KiBot
"""Tests for signs_cleanup wiring into rules route, runner, and scheduler."""

from unittest.mock import MagicMock, patch


def test_valid_types_includes_signs_cleanup():
    import inspect

    from routes.cleanup import rules

    src = inspect.getsource(rules.create_rule)
    assert "signs_cleanup" in src


def test_execute_rule_dispatches_signs_cleanup():
    from services import cleanup_rule_runner

    rule = {
        "id": 9,
        "rule_type": "signs_cleanup",
        "name": "Signs",
        "config_json": {"strip_embedded": False},
    }
    repo = MagicMock()
    repo.get_rule.return_value = rule
    with (
        patch.object(cleanup_rule_runner, "CleanupRepository", return_value=repo),
        patch(
            "services.cleanup_signs.execute_signs_cleanup",
            return_value={
                "trashed_sidecars": 2,
                "stripped_files": 0,
                "stripped_tracks": 0,
                "bytes_freed": 0,
            },
        ) as ex,
        patch("config.get_settings", return_value=MagicMock(media_path="/media")),
    ):
        out = cleanup_rule_runner.execute_rule(9)
    ex.assert_called_once()
    assert out["status"] in ("ok", "completed")


def test_preview_rule_dispatches_signs_cleanup():
    from services import cleanup_rule_runner

    rule = {"id": 9, "rule_type": "signs_cleanup", "name": "Signs", "config_json": {}}
    repo = MagicMock()
    repo.get_rule.return_value = rule
    with (
        patch.object(cleanup_rule_runner, "CleanupRepository", return_value=repo),
        patch(
            "services.cleanup_signs.execute_signs_cleanup",
            return_value={
                "would_remove_sidecars": 3,
                "would_strip_files": 0,
                "would_strip_tracks": 0,
                "examples": [],
            },
        ) as ex,
        patch("config.get_settings", return_value=MagicMock(media_path="/media")),
    ):
        out = cleanup_rule_runner.preview_rule(9)
    ex.assert_called_once_with("/media", {}, dry_run=True)
    assert out["rule_type"] == "signs_cleanup"