async def apply_tasks(self, tasks: List[TaskIn]) -> List[TaskOut]: task_rows = await self.repository.insert_tasks(tasks=[ TaskRowIn( scheduled_at=task.scheduled_at, is_urgent=task.is_urgent, task=task.task, queue_name=task.queue_name, depend_on=let_if(task.depend_on, str), ) for task in tasks ]) return [ TaskOut( uuid=UUID(task_row.uuid), scheduled_at=task_row.scheduled_at, task=task_row.task, queue_name=task_row.queue_name, depend_on=let_if(task_row.depend_on, UUID), ) for task_row in task_rows ]
async def fetch_scheduled_tasks( self, queue_name: str, limit: int, offset: int = 0, ignore_dependency: bool = False, ) -> List[TaskOut]: task_rows = await self.repository.fetch_scheduled_tasks( offset=offset, limit=limit, queue_name=queue_name, ignore_dependency=ignore_dependency, ) return [ TaskOut( uuid=UUID(task_row.uuid), scheduled_at=task_row.scheduled_at, task=task_row.task, queue_name=task_row.queue_name, depend_on=let_if(task_row.depend_on, UUID), ) for task_row in task_rows ]
def test_if_value_none(): assert let_if(None, lambda x: x + 1) is None
def test_if_value_not_none(): assert let_if(1, lambda x: x + 1) == 2
def test_if_value_not_none_but_falsy(): assert let_if(0, lambda x: x + 1) == 1