Fix Server Startup test

This commit is contained in:
Pavel Zorin 2025-11-19 18:22:39 +01:00
parent fe55071849
commit 9aac3399e7
2 changed files with 20 additions and 8 deletions

2
.gitignore vendored
View file

@ -13,6 +13,8 @@ __pycache__/
*.py[cod] *.py[cod]
*$py.class *$py.class
mise.toml
full_run.ipynb full_run.ipynb
# C extensions # C extensions

View file

@ -1,3 +1,4 @@
from logging import getLogger
import unittest import unittest
import subprocess import subprocess
import time import time
@ -8,6 +9,10 @@ from pathlib import Path
import sys import sys
import uuid import uuid
from tenacity import retry, stop_after_attempt, wait_fixed
from cognee.api.health import HealthStatus
class TestCogneeServerStart(unittest.TestCase): class TestCogneeServerStart(unittest.TestCase):
@classmethod @classmethod
@ -28,8 +33,7 @@ class TestCogneeServerStart(unittest.TestCase):
stderr=subprocess.PIPE, stderr=subprocess.PIPE,
preexec_fn=os.setsid, preexec_fn=os.setsid,
) )
# Give the server some time to start cls.wait_for_server_startup()
time.sleep(35)
# Check if server started with errors # Check if server started with errors
if cls.server_process.poll() is not None: if cls.server_process.poll() is not None:
@ -49,12 +53,18 @@ class TestCogneeServerStart(unittest.TestCase):
cls.server_process.terminate() cls.server_process.terminate()
cls.server_process.wait() cls.server_process.wait()
def test_server_is_running(self): @classmethod
"""Test that the server is running and can accept connections.""" @retry(wait=wait_fixed(2), stop=stop_after_attempt(5))
# Test health endpoint def wait_for_server_startup(cls):
health_response = requests.get("http://localhost:8000/health", timeout=15) response = requests.get("http://localhost:8000/health", timeout=15)
self.assertIn(health_response.status_code, [200]) status_str = response.json().get("status")
if response.status_code == 200 and status_str == "ready":
return True
else:
getLogger().info(f"Health check status {response.status_code} : {status_str}, retrying...")
raise requests.exceptions.RequestException(f"Server is {status_str}")
def test_server_is_running(self):
# Test root endpoint # Test root endpoint
root_response = requests.get("http://localhost:8000/", timeout=15) root_response = requests.get("http://localhost:8000/", timeout=15)
self.assertEqual(root_response.status_code, 200) self.assertEqual(root_response.status_code, 200)