Files
hermes-agent/tests/cron/test_cron_non_push_origin.py
teknium1 aedc6ccc3a test: purge low-value tests, lane py05 (339 removed)
Change-detectors, tautologies, source-reading tests, redundant duplicates,
mock-echo tests and dead/unrunnable tests. Per-test rationale in the lane
ledger (category + reason for every removal).
2026-09-23 03:15:26 -07:00

83 lines
3.6 KiB
Python

"""Cron deliver=origin on a non-push surface (#69304).
An api_server turn binds ``async_delivery=False``: its adapter's ``send()`` is a stub, so a
job that captured ``origin.platform="api_server"`` ran fine (``last_status=ok``) while every
fire recorded ``last_delivery_error`` and nothing reached the creator. Both legs are covered:
a non-push session never stamps an origin (so the creation-time local-only notice fires), and
a job already stamped with such an origin resolves to the configured home channel instead.
"""
from gateway.session_context import clear_session_vars, set_session_vars
def test_non_push_session_stamps_no_origin_and_gets_creation_notice():
from tools.cronjob_job_args import _local_delivery_notice, _origin_from_env
tokens = set_session_vars(platform="api_server", chat_id="desk-1", session_key="desk-1",
async_delivery=False)
try:
origin = _origin_from_env()
notice = _local_delivery_notice({"id": "j", "deliver": "origin", "origin": origin}, None)
finally:
clear_session_vars(tokens)
assert origin is None
assert notice
# Control: a push-capable platform keeps its origin.
tokens = set_session_vars(platform="telegram", chat_id="777", session_key="tg", async_delivery=True)
try:
assert _origin_from_env()["platform"] == "telegram"
finally:
clear_session_vars(tokens)
def test_stamped_api_server_origin_falls_back_to_home_channel(monkeypatch):
from cron import scheduler_delivery as sd
monkeypatch.setenv("TELEGRAM_HOME_CHANNEL", "12345")
job = {"id": "old", "deliver": "origin", "origin": {"platform": "api_server", "chat_id": "desk-1"}}
targets = sd._resolve_delivery_targets(job)
assert [(t["platform"], t["chat_id"], t["_resolved_from"]) for t in targets] == [
("telegram", "12345", "origin_fallback")]
# Control: a push-capable origin is delivered as written.
job["origin"] = {"platform": "discord", "chat_id": "42"}
assert sd._resolve_delivery_targets(job)[0]["platform"] == "discord"
def test_non_push_session_creation_notice_names_home_channel_fallback(monkeypatch):
"""With a home channel configured the rerouted job must still tell the creating client where
the report goes (the api_server client never sees it); a push-capable session stays silent."""
from tools.cronjob_job_args import _local_delivery_notice, _origin_from_env
monkeypatch.setenv("TELEGRAM_HOME_CHANNEL", "12345")
tokens = set_session_vars(platform="api_server", chat_id="desk-1", session_key="desk-1",
async_delivery=False)
try:
notice = _local_delivery_notice({"id": "j", "deliver": "origin", "origin": _origin_from_env()}, None)
finally:
clear_session_vars(tokens)
assert notice and "telegram:12345" in notice
tokens = set_session_vars(platform="telegram", chat_id="777", session_key="tg", async_delivery=True)
try:
assert _local_delivery_notice(
{"id": "j", "deliver": "origin", "origin": _origin_from_env()}, None) is None
finally:
clear_session_vars(tokens)
def test_suggestions_accept_origin_shares_the_non_push_guard():
from hermes_cli.suggestions_cmd import _resolve_origin
tokens = set_session_vars(platform="api_server", chat_id="desk-1", session_key="desk-1",
async_delivery=False)
try:
assert _resolve_origin() is None
finally:
clear_session_vars(tokens)
tokens = set_session_vars(platform="telegram", chat_id="777", session_key="tg", async_delivery=True)
try:
assert _resolve_origin()["chat_id"] == "777"
finally:
clear_session_vars(tokens)