from unittest.mock import patch def test_scheduled_collect_calls_cleanup_and_notifier(): from app import main as app_main calls = [] def fake_collect(): calls.append("collect") return {"new_count": 0, "total_count": 0} def fake_cleanup(grace_days=90): calls.append(("cleanup", grace_days)) return 0 def fake_match(): calls.append("match") def fake_notify(): calls.append("notify") return {"sent": 0} with patch.object(app_main, "collect_all", side_effect=fake_collect), \ patch.object(app_main, "delete_old_completed_announcements", side_effect=fake_cleanup), \ patch.object(app_main, "run_matching", side_effect=fake_match), \ patch.object(app_main, "notify_new_matches", side_effect=fake_notify): app_main.scheduled_collect() assert calls == ["collect", ("cleanup", 90), "match", "notify"]