Fix Server Startup test
This commit is contained in:
parent
fe55071849
commit
9aac3399e7
2 changed files with 20 additions and 8 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue