diff --git a/src/anycastd/core/_run.py b/src/anycastd/core/_run.py index 6aa1093..1c57a87 100644 --- a/src/anycastd/core/_run.py +++ b/src/anycastd/core/_run.py @@ -22,4 +22,4 @@ async def run_services(services: Iterable[Service]) -> None: Args: services: The services to run. """ - asyncio.gather(*(service.run() for service in services)) + await asyncio.gather(*(service.run() for service in services)) diff --git a/tests/test_run.py b/tests/test_run.py new file mode 100644 index 0000000..ee37d8b --- /dev/null +++ b/tests/test_run.py @@ -0,0 +1,16 @@ +import pytest +from anycastd.core._run import run_services +from anycastd.core._service import Service + + +@pytest.fixture +def mock_services(mocker): + """A set of mock services.""" + return [mocker.AsyncMock(Service) for _ in range(3)] + + +@pytest.mark.asyncio +async def test_future_created_for_each_service(mock_services): + """A future is created for each service.""" + await run_services(mock_services) + assert all(mock_service.run.called for mock_service in mock_services)