22 lines
580 B
Python
22 lines
580 B
Python
from datetime import datetime, timezone
|
|
|
|
import pytest
|
|
|
|
from app.jobs import next_run, validate_cron
|
|
|
|
|
|
def test_cron_validation_accepts_standard_expression():
|
|
validate_cron("0 2 * * *")
|
|
assert next_run("0 2 * * *")
|
|
|
|
|
|
def test_cron_validation_rejects_invalid_expression():
|
|
with pytest.raises(ValueError):
|
|
validate_cron("not a cron")
|
|
|
|
|
|
def test_next_run_interprets_cron_in_configured_timezone():
|
|
base = datetime(2026, 1, 1, 0, 0, tzinfo=timezone.utc)
|
|
|
|
assert next_run("0 2 * * *", base=base, timezone_name="Europe/Berlin") == "2026-01-01T01:00:00+00:00"
|