def test_scheduler_kwargs_default(self): assert CronTrigger(timezone="utc").scheduler_kwargs == { "year": None, "month": None, "day": None, "week": None, "day_of_week": None, "hour": None, "minute": None, "second": None, "start_date": None, "end_date": None, "timezone": pytz.utc, "jitter": None, }
def bg_cron_trigger(cron_trigger_dict, ts_dt): """A cron trigger as a model.""" dict_copy = copy.deepcopy(cron_trigger_dict) dict_copy['start_date'] = ts_dt dict_copy['end_date'] = ts_dt return CronTrigger(**dict_copy)
def __repr__(self): return BrewtilsCronTrigger.__repr__(self)
def test_start_date_job(self, system_spec): job_name = "test_start_date_job" delay_start = 60 * 2 job_wait = 5 start_date = int(round((time.time() + delay_start) * 1000)) template = RequestTemplate( system=system_spec['system'], system_version=system_spec['system_version'], instance_name=system_spec['instance_name'], command=system_spec['command'], parameters=system_spec['parameters'], comment=job_name + ' Job', output_type="STRING") trigger = CronTrigger(year="*", month="*", day="*", week="*", day_of_week="*", hour="*", minute="*", second=f"*/{job_wait}", start_date=start_date, end_date=None, jitter=None, timezone="UTC") trigger.reschedule_on_finish = True job = Job(name=job_name, trigger_type='cron', trigger=trigger, request_template=template, status="RUNNING", coalesce=True, max_instances=1) job_response = self.easy_client.create_job(job) assert job_response is not None # Verify it hasn't ran yet time.sleep(job_wait + 5) found_jobs = self.easy_client.find_jobs(name=job_name) if time.time() < start_date: assert found_jobs[0].success_count == 0 else: assert False # Verify that is can run time.sleep(delay_start + job_wait) found_jobs = self.easy_client.find_jobs(name=job_name) assert len(found_jobs) == 1 assert found_jobs[0] is not None assert found_jobs[0].success_count > 0 # Verify that the job doesn't get deleted time.sleep(job_wait) found_jobs = self.easy_client.find_jobs(name=job_name) assert len(found_jobs) == 1 assert found_jobs[0] is not None assert found_jobs[0].success_count > 1 assert self.easy_client.remove_job(found_jobs[0].id)