def test_next_time_of_day(estimator, data_cache): time: FakeTime = FakeTime() now: datetime = datetime(1985, 12, 6, 1, 0, 0).astimezone(timezone.utc) time.setNow(now) info = GlobalInfo(time) config: Config = createConfig().override(Setting.DAYS_BETWEEN_BACKUPS, 1).override( Setting.BACKUP_TIME_OF_DAY, '08:00') model: Model = Model(config, time, default_source, default_source, info, estimator, data_cache) assert model._nextBackup(now=now, last_backup=None) == now - timedelta(minutes=1) assert model._nextBackup(now=now, last_backup=now - timedelta(days=1)) == datetime(1985, 12, 5, 8, 0, tzinfo=test_tz) assert model._nextBackup(now=now, last_backup=now) == datetime(1985, 12, 6, 8, 0, tzinfo=test_tz) assert model._nextBackup(now=now, last_backup=datetime(1985, 12, 6, 8, 0, tzinfo=test_tz)) == datetime( 1985, 12, 7, 8, 0, tzinfo=test_tz) assert model._nextBackup(now=datetime(1985, 12, 6, 8, 0, tzinfo=test_tz), last_backup=datetime(1985, 12, 6, 8, 0, tzinfo=test_tz)) == datetime( 1985, 12, 7, 8, 0, tzinfo=test_tz)
def test_next_time(estimator, data_cache): time: FakeTime = FakeTime() now: datetime = datetime(1985, 12, 6, 1, 0, 0).astimezone(timezone.utc) time.setNow(now) info = GlobalInfo(time) config: Config = createConfig().override(Setting.DAYS_BETWEEN_SNAPSHOTS, 0) model: Model = Model(config, time, default_source, default_source, info, estimator, data_cache) assert model._nextSnapshot(now=now, last_snapshot=None) is None assert model._nextSnapshot(now=now, last_snapshot=now) is None config: Config = createConfig().override(Setting.DAYS_BETWEEN_SNAPSHOTS, 1) model: Model = Model(config, time, default_source, default_source, info, estimator, data_cache) assert model._nextSnapshot( now=now, last_snapshot=None) == now - timedelta(minutes=1) assert model._nextSnapshot(now=now, last_snapshot=now) == now + timedelta(days=1) assert model._nextSnapshot(now=now, last_snapshot=now - timedelta(days=1)) == now assert model._nextSnapshot(now=now, last_snapshot=now + timedelta(days=1)) == now + timedelta(days=2)
def test_next_time_of_day_drift(estimator): time: FakeTime = FakeTime() info = GlobalInfo(time) now: datetime = datetime(1985, 12, 6, 1, 0, 0).astimezone(timezone.utc) config: Config = Config().override(Setting.DAYS_BETWEEN_SNAPSHOTS, 1).override( Setting.SNAPSHOT_TIME_OF_DAY, '08:00') model: Model = Model(config, time, default_source, default_source, info, estimator) assert model._nextSnapshot( now=now, last_snapshot=None) == now - timedelta(minutes=1) assert model._nextSnapshot( now=now, last_snapshot=now - timedelta(days=1) + timedelta(minutes=1)) == now
def model(source, dest, time, simple_config, global_info, estimator, data_cache): return Model(simple_config, time, source, dest, global_info, estimator, data_cache)
def test_timeOfDay(estimator) -> None: time: FakeTime = FakeTime() info = GlobalInfo(time) config: Config = Config() model: Model = Model(config, time, default_source, default_source, info, estimator) assert model.getTimeOfDay() is None config = Config().override(Setting.SNAPSHOT_TIME_OF_DAY, '00:00') model = Model(config, time, default_source, default_source, info, estimator) assert model.getTimeOfDay() == (0, 0) config.override(Setting.SNAPSHOT_TIME_OF_DAY, '23:59') model = Model(config, time, default_source, default_source, info, estimator) assert model.getTimeOfDay() == (23, 59) config.override(Setting.SNAPSHOT_TIME_OF_DAY, '24:59') model = Model(config, time, default_source, default_source, info, estimator) assert model.getTimeOfDay() is None config.override(Setting.SNAPSHOT_TIME_OF_DAY, '24:60') model = Model(config, time, default_source, default_source, info, estimator) assert model.getTimeOfDay() is None config.override(Setting.SNAPSHOT_TIME_OF_DAY, '-1:60') model = Model(config, time, default_source, default_source, info, estimator) assert model.getTimeOfDay() is None config.override(Setting.SNAPSHOT_TIME_OF_DAY, '24:-1') model = Model(config, time, default_source, default_source, info, estimator) assert model.getTimeOfDay() is None config.override(Setting.SNAPSHOT_TIME_OF_DAY, 'boop:60') model = Model(config, time, default_source, default_source, info, estimator) assert model.getTimeOfDay() is None config.override(Setting.SNAPSHOT_TIME_OF_DAY, '24:boop') model = Model(config, time, default_source, default_source, info, estimator) assert model.getTimeOfDay() is None config.override(Setting.SNAPSHOT_TIME_OF_DAY, '24:10:22') model = Model(config, time, default_source, default_source, info, estimator) assert model.getTimeOfDay() is None config.override(Setting.SNAPSHOT_TIME_OF_DAY, '10') model = Model(config, time, default_source, default_source, info, estimator) assert model.getTimeOfDay() is None