import json from tamq.cli import main async def service_is_down(): return False def test_manual_send_inbox_and_ack_use_window_repository_identity(tmp_path, monkeypatch, capsys): monkeypatch.setenv("TAMQ_STATE_DIR", str(tmp_path / "state")) monkeypatch.setenv("TAMQ_REPO", "flex-auth") monkeypatch.setattr("tamq.cli.ping", service_is_down) monkeypatch.setattr("tamq.cli.validate_targets", lambda repos: None) assert main(["send", "@audit-core:", "review", "this"]) == 0 message_id = capsys.readouterr().out.strip() assert main(["inbox", "--repo", "audit-core", "--json"]) == 0 row = json.loads(capsys.readouterr().out) assert row["message_id"] == message_id assert row["sender_repo"] == "flex-auth" assert row["target_repo"] == "audit-core" assert row["body"] == "review this" assert row["state"] == "pending" assert main(["ack", message_id]) == 0 capsys.readouterr() assert main(["inbox", "--repo", "audit-core"]) == 0 assert capsys.readouterr().out == "" def test_inbox_requires_repository_outside_managed_window(tmp_path, monkeypatch, capsys): monkeypatch.setenv("TAMQ_STATE_DIR", str(tmp_path / "state")) monkeypatch.delenv("TAMQ_REPO", raising=False) assert main(["inbox"]) == 2 assert "requires --repo" in capsys.readouterr().err