import asyncio import json from tamq.service import Service from tamq.store import Store def test_register_and_send(tmp_path): async def run(): path = tmp_path / "tamq.sock" service = Service(path, Store(tmp_path / "queue.sqlite3")) server = await asyncio.start_unix_server(service.handle, path=str(path)) try: reader, writer = await asyncio.open_unix_connection(str(path)) writer.write((json.dumps({"op": "register", "endpoint_id": "tmux-amq-42", "pid": 42, "session": "tamq", "repos": ["net-kingdom"]}) + "\n").encode()); await writer.drain() assert json.loads(await reader.readline())["ok"] is True writer.close(); await writer.wait_closed() reader, writer = await asyncio.open_unix_connection(str(path)) writer.write(b'{"op":"send","sender_repo":"net-kingdom","target_repo":"railiance-platform","body":"hello"}\n'); await writer.drain() assert json.loads(await reader.readline())["state"] == "pending" writer.close(); await writer.wait_closed() finally: server.close(); await server.wait_closed(); service.close() asyncio.run(run())