Fix weekly scheduling crash: schedule library uses full weekday names, not 3-letter abbreviations

This commit is contained in:
Djeex
2026-08-22 12:17:09 +02:00
parent d051d9deb7
commit a72b486b3b
2 changed files with 69 additions and 5 deletions
+61
View File
@@ -1,4 +1,5 @@
import pytest
import schedule as schedule_lib
import blocklist_scheduler as bs
@@ -39,3 +40,63 @@ def test_backup_first_start_raises_if_adguard_yaml_missing(tmp_path, monkeypatch
with pytest.raises(FileNotFoundError):
bs.backup_first_start()
# --- schedule_job (schedule) ---
@pytest.fixture(autouse=True)
def clear_schedule():
yield
schedule_lib.clear()
def test_schedule_job_daily(monkeypatch):
monkeypatch.setattr(bs, "BLOCKLIST_CRON_TYPE", "daily")
monkeypatch.setattr(bs, "BLOCKLIST_CRON_TIME", "06:00")
bs.schedule_job()
assert len(schedule_lib.jobs) == 1
job = schedule_lib.jobs[0]
assert job.unit == "days"
assert str(job.at_time) == "06:00:00"
assert job.job_func.func is bs.update_blocklist
def test_schedule_job_weekly_valid_day(monkeypatch):
monkeypatch.setattr(bs, "BLOCKLIST_CRON_TYPE", "weekly")
monkeypatch.setattr(bs, "BLOCKLIST_CRON_TIME", "18:30")
monkeypatch.setattr(bs, "BLOCKLIST_CRON_DAY", "wed")
bs.schedule_job()
job = schedule_lib.jobs[0]
assert job.unit == "weeks"
assert job.start_day == "wednesday"
assert str(job.at_time) == "18:30:00"
def test_schedule_job_weekly_invalid_day_defaults_to_monday(monkeypatch):
monkeypatch.setattr(bs, "BLOCKLIST_CRON_TYPE", "weekly")
monkeypatch.setattr(bs, "BLOCKLIST_CRON_DAY", "xxx")
bs.schedule_job()
assert schedule_lib.jobs[0].start_day == "monday"
def test_schedule_job_invalid_time_defaults_to_six_am(monkeypatch):
monkeypatch.setattr(bs, "BLOCKLIST_CRON_TYPE", "daily")
monkeypatch.setattr(bs, "BLOCKLIST_CRON_TIME", "not-a-time")
bs.schedule_job()
assert str(schedule_lib.jobs[0].at_time) == "06:00:00"
def test_schedule_job_invalid_type_defaults_to_daily(monkeypatch):
monkeypatch.setattr(bs, "BLOCKLIST_CRON_TYPE", "bogus")
bs.schedule_job()
assert schedule_lib.jobs[0].unit == "days"