Wait for the server to start before continuing with the test

This commit is contained in:
Pedro Algarvio 2024-04-24 12:16:23 +01:00
parent bdb20a3c0d
commit a2a589e5dc
No known key found for this signature in database
GPG key ID: BB36BF6584A298FF
2 changed files with 12 additions and 0 deletions

View file

@ -484,6 +484,7 @@ class RequestServer(salt.transport.base.DaemonizedRequestServer):
"""
self.message_handler = message_handler
self._run = asyncio.Event()
self._started = asyncio.Event()
self._run.set()
async def server():
@ -496,6 +497,7 @@ class RequestServer(salt.transport.base.DaemonizedRequestServer):
self.site = aiohttp.web.SockSite(runner, self._socket, ssl_context=ctx)
log.info("Worker binding to socket %s", self._socket)
await self.site.start()
self._started.set()
# pause here for very long time by serving HTTP requests and
# waiting for keyboard interruption
while self._run.is_set():

View file

@ -1,5 +1,7 @@
import asyncio
import pytest
import salt.transport
import salt.utils.process
@ -27,6 +29,14 @@ async def test_request_server(
return repmsg
req_server.post_fork(handler, io_loop)
start_server_timeout = 10
while start_server_timeout:
start_server_timeout -= 1
if req_server._started.is_set():
break
await asyncio.sleep(0.5)
else:
pytest.fail("Failed to start req server after 5 seconds")
req_client = salt.transport.request_client(minion_opts, io_loop)
try: