diff --git a/lilac/server.py b/lilac/server.py index 1f792f96c..12611a55a 100644 --- a/lilac/server.py +++ b/lilac/server.py @@ -201,8 +201,11 @@ def __init__(self, config: Config) -> None: super().__init__(config) def run() -> None: - loop = asyncio.get_event_loop() - loop.run_until_complete(self.serve()) + try: + loop = asyncio.get_event_loop() + loop.run_until_complete(self.serve()) + except RuntimeError: + self.run() self.thread = Thread(target=run) diff --git a/lilac/server_test.py b/lilac/server_test.py index 6b05fc958..067b219a5 100644 --- a/lilac/server_test.py +++ b/lilac/server_test.py @@ -1,5 +1,6 @@ """Test our public REST API.""" import os +from time import sleep from fastapi.testclient import TestClient from pytest_mock import MockerFixture @@ -12,7 +13,7 @@ UserInfo, get_session_user, ) -from .server import app +from .server import app, start_server, stop_server client = TestClient(app) @@ -161,3 +162,9 @@ def user() -> UserInfo: ), auth_enabled=True, ) + + +def test_start_and_stop_server() -> None: + start_server() + sleep(1) + stop_server()