tmux-amq/tests/test_service_registry.py

24 lines
1 KiB
Python
Raw Normal View History

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())