(tmp_path, provider_cls, registry, agent_config=None)
| 176 | |
| 177 | @contextlib.asynccontextmanager |
| 178 | async def _running_server(tmp_path, provider_cls, registry, agent_config=None): |
| 179 | config = ServerConfig(host="127.0.0.1", port=_free_port(), workspace=str(tmp_path)) |
| 180 | manager = SessionManager(workspace=str(tmp_path), index_path=tmp_path / "idx.json") |
| 181 | spawn = make_spawn_agent(agent_config or AgentServerConfig()) |
| 182 | server = DirectConnectServer(config=config, manager=manager, spawn_agent=spawn) |
| 183 | await server.start() |
| 184 | serve_task = asyncio.get_running_loop().create_task(server.serve_forever()) |
| 185 | with contextlib.ExitStack() as stack: |
| 186 | for p in _patches(provider_cls, registry): |
| 187 | stack.enter_context(p) |
| 188 | try: |
| 189 | yield config |
| 190 | finally: |
| 191 | await server.stop() |
| 192 | serve_task.cancel() |
| 193 | with contextlib.suppress(asyncio.CancelledError): |
| 194 | await serve_task |
| 195 | |
| 196 | |
| 197 | async def _wait_for(predicate, timeout=10.0, interval=0.05): |
no test coverage detected