Files
opendan/test/chatsession_test.py
Liu Zhicong 05d2e4a9cf 1.workflow has reached a state of basic functionality.
2. implemented AI message bus infrastructure,
2023-08-30 12:30:41 -07:00

75 lines
2.4 KiB
Python

import unittest
import sys
import os
import sqlite3
directory = os.path.dirname(__file__)
sys.path.append(directory + '/../src')
from aios_kernel import ChatSessionDB
class TestChatDatabase(unittest.TestCase):
def setUp(self):
"""Function to setup the test case"""
self.db_file = 'test_chat.db'
self.chat_db = ChatSessionDB(self.db_file)
def tearDown(self):
"""Function to cleanup after the test case"""
self.chat_db.close()
os.remove(self.db_file)
def test_database_creation(self):
"""Test if the database is created"""
self.assertTrue(os.path.exists(self.db_file))
def test_table_creation(self):
"""Test if the tables are created in the database"""
conn = sqlite3.connect(self.db_file)
cursor = conn.cursor()
# Check if ChatSessions table exists
cursor.execute("""
SELECT count(name) FROM sqlite_master WHERE type='table' AND name='ChatSessions'
""")
self.assertEqual(cursor.fetchone()[0], 1)
# Check if Messages table exists
cursor.execute("""
SELECT count(name) FROM sqlite_master WHERE type='table' AND name='Messages'
""")
self.assertEqual(cursor.fetchone()[0], 1)
conn.close()
def test_insert_and_get_session(self):
"""Test if we can insert and retrieve a session"""
session_id = "session1"
session_owner = "user1"
session_topic = "topic1"
start_time = "2023-08-28 12:00:00"
self.chat_db.insert_chatsession(session_id,session_owner, session_topic, start_time)
session = self.chat_db.get_chatsession_by_id(session_id)
self.assertEqual(session, (session_id,session_owner,session_topic, start_time))
def test_insert_and_get_message(self):
"""Test if we can insert and retrieve a message"""
message_id = "message1"
session_id = "session1"
sender_id = "user1"
receiver_id = "user2"
timestamp = "2023-08-28 12:30:00"
content = "Hello, world!"
status = 0
self.chat_db.insert_message(message_id, session_id, sender_id, receiver_id, timestamp, content, status)
message = self.chat_db.get_message_by_id(message_id)
self.assertEqual(message, (message_id, session_id, sender_id, receiver_id, timestamp, content, status))
if __name__ == '__main__':
unittest.main()