mirror of
https://github.com/danswer-ai/danswer.git
synced 2025-05-06 09:50:27 +02:00
67 lines
2.2 KiB
Python
67 lines
2.2 KiB
Python
import requests
|
|
from sqlalchemy.orm import Session
|
|
|
|
from danswer.db.models import User
|
|
|
|
|
|
def test_create_chat_session_and_send_messages(db_session: Session) -> None:
|
|
# Create a test user
|
|
test_user = User(email="test@example.com", hashed_password="dummy_hash")
|
|
db_session.add(test_user)
|
|
db_session.commit()
|
|
|
|
base_url = "http://localhost:8080" # Adjust this to your API's base URL
|
|
headers = {"Authorization": f"Bearer {test_user.id}"}
|
|
|
|
# Create a new chat session
|
|
create_session_response = requests.post(
|
|
f"{base_url}/chat/create-chat-session",
|
|
json={
|
|
"description": "Test Chat",
|
|
"persona_id": 1,
|
|
}, # Assuming persona_id 1 exists
|
|
headers=headers,
|
|
)
|
|
assert create_session_response.status_code == 200
|
|
chat_session_id = create_session_response.json()["chat_session_id"]
|
|
|
|
# Send first message
|
|
first_message = "Hello, this is a test message."
|
|
send_message_response = requests.post(
|
|
f"{base_url}/chat/send-message",
|
|
json={
|
|
"chat_session_id": chat_session_id,
|
|
"message": first_message,
|
|
"prompt_id": None,
|
|
"retrieval_options": {"top_k": 3},
|
|
"stream_response": False,
|
|
},
|
|
headers=headers,
|
|
)
|
|
assert send_message_response.status_code == 200
|
|
|
|
# Send second message
|
|
second_message = "Can you provide more information?"
|
|
send_message_response = requests.post(
|
|
f"{base_url}/chat/send-message",
|
|
json={
|
|
"chat_session_id": chat_session_id,
|
|
"message": second_message,
|
|
"prompt_id": None,
|
|
"retrieval_options": {"top_k": 3},
|
|
"stream_response": False,
|
|
},
|
|
headers=headers,
|
|
)
|
|
assert send_message_response.status_code == 200
|
|
|
|
# Verify chat session details
|
|
get_session_response = requests.get(
|
|
f"{base_url}/chat/get-chat-session/{chat_session_id}", headers=headers
|
|
)
|
|
assert get_session_response.status_code == 200
|
|
session_details = get_session_response.json()
|
|
assert session_details["chat_session_id"] == chat_session_id
|
|
assert session_details["description"] == "Test Chat"
|
|
assert len(session_details["messages"]) == 4 # 2 user messages + 2 AI responses
|