# HG changeset patch # User drewp@bigasterisk.com # Date 1710614408 25200 # Node ID b5afa9363c3b8a525c649b85adc72b2f7147df53 # Parent b4dc3eb1f92b88ef60b2d8ccfa62e2498a859b9f add test helper diff -r b4dc3eb1f92b -r b5afa9363c3b examples/run_server_make_request.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/examples/run_server_make_request.py Sat Mar 16 11:40:08 2024 -0700 @@ -0,0 +1,26 @@ +import asyncio +from dataclasses import dataclass +from pathlib import Path + +import aiohttp + + +@dataclass +class HttpServer: + server_path: Path + + async def __aenter__(self): + self.subprocess = await asyncio.create_subprocess_exec( + 'pdm', 'run', 'python', self.server_path) + self._session = await aiohttp.ClientSession().__aenter__() + return self + + async def __aexit__(self, exc_type, exc, tb): + self.subprocess.terminate() + + async def get(self, url: str) -> aiohttp.ClientResponse: + while True: + try: + return await self._session.get(url) + except aiohttp.ClientConnectorError: + await asyncio.sleep(0.05)