chat: implemented special version of 'latest_message()' for the ChatDB class

This commit is contained in:
2023-09-14 11:45:47 +02:00
parent 17a0264025
commit 5cb88dad1b
2 changed files with 65 additions and 6 deletions
+27
View File
@@ -84,6 +84,13 @@ class TestChat(unittest.TestCase):
self.chat.remove_messages(['0003.txt'])
self.assertListEqual(self.chat.messages, [self.message1, self.message2])
def test_latest_message(self) -> None:
self.assertIsNone(self.chat.latest_message())
self.chat.add_messages([self.message1])
self.assertEqual(self.chat.latest_message(), self.message1)
self.chat.add_messages([self.message2])
self.assertEqual(self.chat.latest_message(), self.message2)
@patch('sys.stdout', new_callable=StringIO)
def test_print(self, mock_stdout: StringIO) -> None:
self.chat.add_messages([self.message1, self.message2])
@@ -474,3 +481,23 @@ class TestChatDB(unittest.TestCase):
answer=Answer("Answer 1"))
with self.assertRaises(ChatError):
chat_db.update_messages([message1])
def test_chat_db_latest_message(self) -> None:
chat_db = ChatDB.from_dir(pathlib.Path(self.cache_path.name),
pathlib.Path(self.db_path.name))
self.assertEqual(chat_db.latest_message(source='mem'), self.message4)
self.assertEqual(chat_db.latest_message(source='db'), self.message4)
self.assertEqual(chat_db.latest_message(source='disk'), self.message4)
self.assertEqual(chat_db.latest_message(source='all'), self.message4)
# the cache is currently empty:
self.assertIsNone(chat_db.latest_message(source='cache'))
# add new messages to the cache dir
new_message = Message(question=Question("New Question"),
answer=Answer("New Answer"))
chat_db.add_to_cache([new_message])
self.assertEqual(chat_db.latest_message(source='cache'), new_message)
self.assertEqual(chat_db.latest_message(source='mem'), new_message)
self.assertEqual(chat_db.latest_message(source='disk'), new_message)
self.assertEqual(chat_db.latest_message(source='all'), new_message)
# the DB does not contain the new message
self.assertEqual(chat_db.latest_message(source='db'), self.message4)