import asyncio import json from tamq.service import Service from tamq.store import Store from tamq import service def test_register_rejects_unknown_repo(tmp_path, monkeypatch): monkeypatch.setattr(service, "validate_targets", lambda repos: (_ for _ in ()).throw(service.RegistryError("unknown"))) async def run(): socket = tmp_path / "tamq.sock" instance = Service(socket, Store(tmp_path / "queue.sqlite3")) server = await asyncio.start_unix_server(instance.handle, path=str(socket)) try: reader, writer = await asyncio.open_unix_connection(str(socket)) writer.write((json.dumps({"op": "register", "endpoint_id": "tmux-amq-1", "pid": 1, "session": "tamq", "repos": ["missing"]}) + "\n").encode()); 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(); instance.close() asyncio.run(run())