from unittest.mock import Mock from fastapi import Request from app.iptv.scheduler import StreamScheduler class MockScheduler: """Base mock APScheduler instance""" running = True start = Mock() shutdown = Mock() add_job = Mock() remove_job = Mock() get_job = Mock(return_value=None) def __init__(self, running=True): self.running = running def create_trigger_mock(triggered_ref: dict) -> callable: """Create a mock trigger function that updates a reference when called""" def trigger_mock(): triggered_ref["value"] = True return trigger_mock async def mock_get_scheduler( request: Request, scheduler_class=MockScheduler, running=True, **kwargs ) -> StreamScheduler: """Mock dependency for get_scheduler with customization options""" scheduler = StreamScheduler() mock_scheduler = scheduler_class(running=running) # Apply any additional attributes/methods for key, value in kwargs.items(): setattr(mock_scheduler, key, value) scheduler.scheduler = mock_scheduler return scheduler