def __init__(
        self,
        *,
        year: Union[int, str] = None,
        month: Union[int, str] = None,
        day: Union[int, str] = None,
        week: Union[int, str] = None,
        day_of_week: Union[int, str] = None,
        hour: Union[int, str] = None,
        minute: Union[int, str] = None,
        second: Union[int, str] = None,
        start_time: datetime = None,
        end_time: datetime = None,
        **kwargs
    ):
        assert check_argument_types()
        super().__init__(**kwargs)
        self.start_time = convert_to_datetime(start_time, self.timezone)
        self.end_time = convert_to_datetime(end_time, self.timezone)
        self.fields = self._create_fields(
            year=year, month=month, week=week, day=day, day_of_week=day_of_week, hour=hour, minute=minute, second=second
        )

        if start_time and end_time and start_time > end_time:
            raise ValueError("end_time cannot be earlier than start_time")
    def __init__(
        self,
        *,
        weeks: int = 0,
        days: int = 0,
        hours: int = 0,
        minutes: int = 0,
        seconds: int = 0,
        start_time: datetime = None,
        end_time: datetime = None,
        **kwargs
    ):
        assert check_argument_types()
        super().__init__(**kwargs)
        self.start_time = convert_to_datetime(start_time, self.timezone)
        self.end_time = convert_to_datetime(end_time, self.timezone)
        self.interval = timedelta(weeks=weeks, days=days, hours=hours, minutes=minutes, seconds=seconds)

        if self.interval.total_seconds() < 1:
            raise ValueError("interval must be at least 1 second long")
        if start_time and end_time and start_time > end_time:
            raise ValueError("end_time cannot be earlier than start_time")
def test_get_next_run_time(schedule: CronSchedule, previous_time, now, expected,
                           timezone: DstTzInfo):
    previous_time = convert_to_datetime(previous_time, timezone)
    now = convert_to_datetime(now, timezone)
    expected = convert_to_datetime(expected, timezone)
    assert schedule.get_next_run_time(now, previous_time) == expected
Example #4
0
 def __init__(self, run_time: datetime, **kwargs):
     assert check_argument_types()
     super().__init__(**kwargs)
     self.run_time = convert_to_datetime(run_time, self.timezone)
def test_convert_to_datetime(input, expected, timezone):
    if expected:
        expected = timezone.localize(expected)

    assert convert_to_datetime(input, timezone) == expected