import asyncio import json from tamq.service import PUSHY_FRAMING_CAPABILITY, Service from tamq.store import Store def test_incompatible_protocol_rejected(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(b'{"op":"ping","protocol":"2.0"}\n'); await writer.drain() response = json.loads(await reader.readline()) assert response["ok"] is False writer.close(); await writer.wait_closed() finally: server.close(); await server.wait_closed(); service.close() asyncio.run(run()) def test_ping_advertises_non_routable_pushy_framing(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(b'{"op":"ping"}\n') await writer.drain() response = json.loads(await reader.readline()) assert PUSHY_FRAMING_CAPABILITY in response["capabilities"] writer.close() await writer.wait_closed() finally: server.close() await server.wait_closed() service.close() asyncio.run(run())