test_aigc_publish_scheduler.py 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. from __future__ import annotations
  2. from unittest.mock import patch
  3. from supply_infra.scheduler.app import create_scheduler, submit_aigc_publish
  4. from supply_infra.scheduler.constants import (
  5. AIGC_PUBLISH_JOB_ID,
  6. SUPPLY_PIPELINE_JOB_ID,
  7. )
  8. def test_create_scheduler_registers_pipeline_and_aigc_jobs() -> None:
  9. scheduler = create_scheduler()
  10. job_ids = {job.id for job in scheduler.get_jobs()}
  11. assert SUPPLY_PIPELINE_JOB_ID in job_ids
  12. assert AIGC_PUBLISH_JOB_ID in job_ids
  13. aigc_job = scheduler.get_job(AIGC_PUBLISH_JOB_ID)
  14. assert aigc_job is not None
  15. assert aigc_job.trigger.interval.total_seconds() == 600
  16. @patch(
  17. "supply_infra.scheduler.jobs.publish_videos_from_discovery.publish_videos_from_discovery"
  18. )
  19. def test_submit_aigc_publish_scans_all_unpublished(mock_publish) -> None:
  20. mock_publish.return_value = {
  21. "success": True,
  22. "candidate_count": 0,
  23. "batch_count": 0,
  24. "failed_batch_count": 0,
  25. }
  26. result = submit_aigc_publish()
  27. assert result["success"] is True
  28. mock_publish.assert_called_once_with(skip_published=True, any_biz_dt=True)