Files
ai-exchange/tests/unit/test_run_visual_capture_cleanup.py
2026-05-12 00:36:20 +08:00

33 lines
1.1 KiB
Python

import contextlib
import io
import json
import unittest
from unittest.mock import patch
from scripts import run_visual_capture_cleanup
class RunVisualCaptureCleanupScriptTests(unittest.TestCase):
def test_main_outputs_json(self) -> None:
with patch("scripts.run_visual_capture_cleanup.cleanup_visual_watch_captures") as cleanup_mock:
cleanup_mock.return_value = {
"status": "completed",
"root": "captures",
"eligible_file_count": 2,
"deleted_file_count": 2,
}
output = io.StringIO()
with contextlib.redirect_stdout(output):
exit_code = run_visual_capture_cleanup.main(
env={"VISUAL_CAPTURE_CLEANUP_OUTPUT_JSON": "1", "VISUAL_CAPTURE_CLEANUP_RETENTION_HOURS": "168"}
)
payload = json.loads(output.getvalue())
self.assertEqual(exit_code, 0)
self.assertEqual(payload["status"], "completed")
cleanup_mock.assert_called_once()
if __name__ == "__main__":
unittest.main()