async def test_list_schedules_from_scheduler(db: Session, scheduler: Scheduler): project_1 = "project-1" project_1_number_of_schedules = 5 for index in range(project_1_number_of_schedules): schedule_name = f"schedule-name-{index}" _create_do_nothing_schedule(db, scheduler, project_1, schedule_name) project_2 = "project-2" project_2_number_of_schedules = 2 for index in range(project_2_number_of_schedules): schedule_name = f"schedule-name-{index}" _create_do_nothing_schedule(db, scheduler, project_2, schedule_name) assert (len(scheduler._list_schedules_from_scheduler(project_1)) == project_1_number_of_schedules) assert (len(scheduler._list_schedules_from_scheduler(project_2)) == project_2_number_of_schedules)
async def test_rescheduling_secrets_storing( db: Session, scheduler: Scheduler, k8s_secrets_mock: tests.api.conftest.K8sSecretsMock, ): mlrun.api.utils.auth.verifier.AuthVerifier( ).is_jobs_auth_required = unittest.mock.Mock(return_value=True) name = "schedule-name" project = config.default_project scheduled_object = _create_mlrun_function_and_matching_scheduled_object( db, project) username = "******" access_key = "some-user-access-key" cron_trigger = schemas.ScheduleCronTrigger(year="1999") scheduler.create_schedule( db, mlrun.api.schemas.AuthInfo(username=username, access_key=access_key), project, name, schemas.ScheduleKinds.job, scheduled_object, cron_trigger, ) jobs = scheduler._list_schedules_from_scheduler(project) assert jobs[0].args[5].access_key == access_key assert jobs[0].args[5].username == username k8s_secrets_mock.assert_project_secrets( project, { mlrun.api.crud.Secrets().generate_schedule_access_key_secret_key(name): access_key, mlrun.api.crud.Secrets().generate_schedule_username_secret_key(name): username, }, ) await scheduler.stop() jobs = scheduler._list_schedules_from_scheduler(project) assert jobs == [] await scheduler.start(db) jobs = scheduler._list_schedules_from_scheduler(project) assert jobs[0].args[5].username == username assert jobs[0].args[5].access_key == access_key
async def test_rescheduling_secrets_storing( db: Session, scheduler: Scheduler, k8s_secrets_mock: tests.api.conftest.K8sSecretsMock, ): scheduler._store_schedule_credentials_in_secrets = True name = "schedule-name" project = config.default_project scheduled_object = _create_mlrun_function_and_matching_scheduled_object( db, project) session = "some-user-session" cron_trigger = schemas.ScheduleCronTrigger(year="1999") scheduler.create_schedule( db, mlrun.api.schemas.AuthInfo(session=session), project, name, schemas.ScheduleKinds.job, scheduled_object, cron_trigger, ) jobs = scheduler._list_schedules_from_scheduler(project) assert jobs[0].args[5].session == session k8s_secrets_mock.assert_project_secrets( project, {mlrun.api.crud.Secrets().generate_schedule_secret_key(name): session}) await scheduler.stop() jobs = scheduler._list_schedules_from_scheduler(project) assert jobs == [] await scheduler.start(db) jobs = scheduler._list_schedules_from_scheduler(project) assert jobs[0].args[5].session == session