2026-08-25 00:08:57 +02:00
|
|
|
import pytest
|
|
|
|
|
|
2026-08-25 19:26:27 +02:00
|
|
|
from tamq.routing import parse_address_line, parse_command_line
|
2026-08-24 01:18:40 +02:00
|
|
|
|
|
|
|
|
|
2026-08-25 19:26:27 +02:00
|
|
|
def test_direct_address_uses_readable_case_sensitive_grammar():
|
|
|
|
|
routed = parse_address_line("To:railiance-platform: do something!")
|
2026-08-25 00:08:57 +02:00
|
|
|
assert routed.body == "do something!"
|
|
|
|
|
assert routed.target_repo == "railiance-platform"
|
2026-08-24 01:18:40 +02:00
|
|
|
|
|
|
|
|
|
2026-08-25 19:26:27 +02:00
|
|
|
@pytest.mark.parametrize(
|
|
|
|
|
"line",
|
|
|
|
|
[
|
|
|
|
|
"@repo: removed",
|
|
|
|
|
"#repo: removed",
|
|
|
|
|
"to:repo: wrong case",
|
|
|
|
|
"hello To:repo: not at start",
|
|
|
|
|
"To:repo:",
|
|
|
|
|
"From:repo: inbound envelope",
|
|
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
def test_non_protocol_and_legacy_input_is_not_routed(line):
|
|
|
|
|
assert parse_address_line(line) is None
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_operator_command_grammar():
|
|
|
|
|
assert parse_command_line("Cmd: mode=trigger") == "mode=trigger"
|
|
|
|
|
assert parse_command_line("Cmd: reset-limits") == "reset-limits"
|
|
|
|
|
assert parse_command_line("cmd: mode=trigger") is None
|