2026-02-26 13:54:20 +03:00
|
|
|
"""Tests for cron/scheduler.py — origin resolution and delivery routing."""
|
|
|
|
|
|
|
|
|
|
import pytest
|
|
|
|
|
|
|
|
|
|
from cron.scheduler import _resolve_origin
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class TestResolveOrigin:
|
|
|
|
|
def test_full_origin(self):
|
|
|
|
|
job = {
|
|
|
|
|
"origin": {
|
|
|
|
|
"platform": "telegram",
|
|
|
|
|
"chat_id": "123456",
|
|
|
|
|
"chat_name": "Test Chat",
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
result = _resolve_origin(job)
|
2026-03-05 18:39:37 -08:00
|
|
|
assert isinstance(result, dict)
|
|
|
|
|
assert result == job["origin"]
|
2026-02-26 13:54:20 +03:00
|
|
|
assert result["platform"] == "telegram"
|
|
|
|
|
assert result["chat_id"] == "123456"
|
2026-03-05 18:39:37 -08:00
|
|
|
assert result["chat_name"] == "Test Chat"
|
2026-02-26 13:54:20 +03:00
|
|
|
|
|
|
|
|
def test_no_origin(self):
|
|
|
|
|
assert _resolve_origin({}) is None
|
|
|
|
|
assert _resolve_origin({"origin": None}) is None
|
|
|
|
|
|
|
|
|
|
def test_missing_platform(self):
|
|
|
|
|
job = {"origin": {"chat_id": "123"}}
|
|
|
|
|
assert _resolve_origin(job) is None
|
|
|
|
|
|
|
|
|
|
def test_missing_chat_id(self):
|
|
|
|
|
job = {"origin": {"platform": "telegram"}}
|
|
|
|
|
assert _resolve_origin(job) is None
|
|
|
|
|
|
|
|
|
|
def test_empty_origin(self):
|
|
|
|
|
job = {"origin": {}}
|
|
|
|
|
assert _resolve_origin(job) is None
|