mirror of
https://github.com/HKUDS/nanobot.git
synced 2026-06-15 15:24:06 +00:00
45 lines
1.2 KiB
Python
45 lines
1.2 KiB
Python
import pytest
|
|
|
|
from nanobot.cron.session_delivery import origin_delivery_context
|
|
from nanobot.cron.types import CronJob, CronPayload
|
|
|
|
|
|
def test_origin_delivery_context_uses_explicit_origin_fields() -> None:
|
|
metadata = {
|
|
"context_chat_id": "456",
|
|
"parent_channel_id": "456",
|
|
"thread_id": "777",
|
|
}
|
|
job = CronJob(
|
|
id="thread-check",
|
|
name="Thread check",
|
|
payload=CronPayload(
|
|
message="check",
|
|
session_key="discord:456:thread:777",
|
|
origin_channel="discord",
|
|
origin_chat_id="777",
|
|
origin_metadata=metadata,
|
|
),
|
|
)
|
|
|
|
channel, chat_id, returned_metadata = origin_delivery_context(job)
|
|
|
|
assert channel == "discord"
|
|
assert chat_id == "777"
|
|
assert returned_metadata == metadata
|
|
assert returned_metadata is not metadata
|
|
|
|
|
|
def test_origin_delivery_context_rejects_missing_origin_fields() -> None:
|
|
job = CronJob(
|
|
id="old-bound",
|
|
name="Old bound job",
|
|
payload=CronPayload(
|
|
message="check",
|
|
session_key="websocket:chat-1",
|
|
),
|
|
)
|
|
|
|
with pytest.raises(ValueError, match="missing origin delivery context"):
|
|
origin_delivery_context(job)
|