test: add backend flow test (#995)
<!-- .github/pull_request_template.md --> ## Description Simple Cognee endpoint testing ## DCO Affirmation I affirm that all code in every commit of this pull request conforms to the terms of the Topoteretes Developer Certificate of Origin. --------- Co-authored-by: Boris <boris@topoteretes.com>
This commit is contained in:
parent
e7644f4b3a
commit
72f97bbccc
1 changed files with 60 additions and 1 deletions
|
|
@ -4,6 +4,7 @@ import time
|
||||||
import os
|
import os
|
||||||
import signal
|
import signal
|
||||||
import requests
|
import requests
|
||||||
|
from pathlib import Path
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -27,7 +28,7 @@ class TestCogneeServerStart(unittest.TestCase):
|
||||||
preexec_fn=os.setsid,
|
preexec_fn=os.setsid,
|
||||||
)
|
)
|
||||||
# Give the server some time to start
|
# Give the server some time to start
|
||||||
time.sleep(30)
|
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:
|
||||||
|
|
@ -54,6 +55,64 @@ class TestCogneeServerStart(unittest.TestCase):
|
||||||
self.assertIn("message", root_response.json())
|
self.assertIn("message", root_response.json())
|
||||||
self.assertEqual(root_response.json()["message"], "Hello, World, I am alive!")
|
self.assertEqual(root_response.json()["message"], "Hello, World, I am alive!")
|
||||||
|
|
||||||
|
# Login request
|
||||||
|
url = "http://127.0.0.1:8000/api/v1/auth/login"
|
||||||
|
form_data = {
|
||||||
|
"username": "default_user@example.com",
|
||||||
|
"password": "default_password",
|
||||||
|
}
|
||||||
|
login_response = requests.post(url, data=form_data, timeout=10)
|
||||||
|
login_response.raise_for_status() # raises on HTTP 4xx/5xx
|
||||||
|
|
||||||
|
# Define Bearer token to use for authorization
|
||||||
|
auth_var = (
|
||||||
|
"Bearer " + login_response.json()["access_token"]
|
||||||
|
) # e.g. "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
|
||||||
|
|
||||||
|
# Add request
|
||||||
|
url = "http://127.0.0.1:8000/api/v1/add"
|
||||||
|
file_path = Path(os.path.join(Path(__file__).parent, "test_data/example.png"))
|
||||||
|
headers = {"Authorization": auth_var}
|
||||||
|
|
||||||
|
form_data = {"datasetName": "test"}
|
||||||
|
|
||||||
|
file = {
|
||||||
|
"data": (
|
||||||
|
file_path.name,
|
||||||
|
open(file_path, "rb"),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
add_response = requests.post(url, headers=headers, data=form_data, files=file, timeout=15)
|
||||||
|
add_response.raise_for_status() # raise if HTTP 4xx/5xx
|
||||||
|
|
||||||
|
# Cognify request
|
||||||
|
url = "http://127.0.0.1:8000/api/v1/cognify"
|
||||||
|
headers = {
|
||||||
|
"Authorization": auth_var,
|
||||||
|
"Content-Type": "application/json",
|
||||||
|
}
|
||||||
|
|
||||||
|
payload = {"datasets": ["test"]}
|
||||||
|
|
||||||
|
cognify_response = requests.post(url, headers=headers, json=payload, timeout=15)
|
||||||
|
cognify_response.raise_for_status() # raises on HTTP 4xx/5xx
|
||||||
|
|
||||||
|
# TODO: Add test to verify cognify pipeline is complete before testing search
|
||||||
|
|
||||||
|
# Search request
|
||||||
|
url = "http://127.0.0.1:8000/api/v1/search"
|
||||||
|
|
||||||
|
headers = {
|
||||||
|
"Authorization": auth_var,
|
||||||
|
"Content-Type": "application/json",
|
||||||
|
}
|
||||||
|
|
||||||
|
payload = {"searchType": "GRAPH_COMPLETION", "query": "What's in the document?"}
|
||||||
|
|
||||||
|
search_response = requests.post(url, headers=headers, json=payload, timeout=15)
|
||||||
|
search_response.raise_for_status() # raises on HTTP 4xx/5xx
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue