test_question_cmd: modified tests to use '.msg' file suffix
This commit is contained in:
parent
3bc5f7cd63
commit
3c1c9860a0
@ -14,6 +14,9 @@ from chatmastermind.ai import AIError
|
||||
from .test_common import TestWithFakeAI
|
||||
|
||||
|
||||
msg_suffix = Message.file_suffix_write
|
||||
|
||||
|
||||
class TestMessageCreate(TestWithFakeAI):
|
||||
"""
|
||||
Test if messages created by the 'question' command have
|
||||
@ -83,7 +86,7 @@ Aaaand again some text."""
|
||||
|
||||
def message_list(self, tmp_dir: tempfile.TemporaryDirectory) -> list[Path]:
|
||||
# exclude '.next'
|
||||
return list(Path(tmp_dir.name).glob('*.[ty]*'))
|
||||
return list(Path(tmp_dir.name).glob(f'*{msg_suffix}'))
|
||||
|
||||
def test_message_file_created(self) -> None:
|
||||
self.args.ask = ["What is this?"]
|
||||
@ -231,7 +234,7 @@ class TestQuestionCmd(TestWithFakeAI):
|
||||
|
||||
def message_list(self, tmp_dir: tempfile.TemporaryDirectory) -> list[Path]:
|
||||
# exclude '.next'
|
||||
return sorted([f for f in Path(tmp_dir.name).glob('*.[ty]*')])
|
||||
return sorted([f for f in Path(tmp_dir.name).glob(f'*{msg_suffix}')])
|
||||
|
||||
|
||||
class TestQuestionCmdAsk(TestQuestionCmd):
|
||||
@ -330,14 +333,16 @@ class TestQuestionCmdRepeat(TestQuestionCmd):
|
||||
Repeat a single question.
|
||||
"""
|
||||
mock_create_ai.side_effect = self.mock_create_ai
|
||||
chat = ChatDB.from_dir(Path(self.cache_dir.name),
|
||||
Path(self.db_dir.name))
|
||||
# create a message
|
||||
message = Message(Question(self.args.ask[0]),
|
||||
Answer('Old Answer'),
|
||||
tags=set(self.args.output_tags),
|
||||
ai=self.args.AI,
|
||||
model=self.args.model,
|
||||
file_path=Path(self.cache_dir.name) / '0001.txt')
|
||||
message.to_file()
|
||||
file_path=Path(self.cache_dir.name) / f'0001{msg_suffix}')
|
||||
chat.msg_write([message])
|
||||
|
||||
# repeat the last question (without overwriting)
|
||||
# -> expect two identical messages (except for the file_path)
|
||||
@ -353,8 +358,6 @@ class TestQuestionCmdRepeat(TestQuestionCmd):
|
||||
# we expect the original message + the one with the new response
|
||||
expected_responses = [message] + [expected_response]
|
||||
question_cmd(self.args, self.config)
|
||||
chat = ChatDB.from_dir(Path(self.cache_dir.name),
|
||||
Path(self.db_dir.name))
|
||||
cached_msg = chat.msg_gather(loc='cache')
|
||||
print(self.message_list(self.cache_dir))
|
||||
self.assertEqual(len(self.message_list(self.cache_dir)), 2)
|
||||
@ -366,16 +369,16 @@ class TestQuestionCmdRepeat(TestQuestionCmd):
|
||||
Repeat a single question and overwrite the old one.
|
||||
"""
|
||||
mock_create_ai.side_effect = self.mock_create_ai
|
||||
chat = ChatDB.from_dir(Path(self.cache_dir.name),
|
||||
Path(self.db_dir.name))
|
||||
# create a message
|
||||
message = Message(Question(self.args.ask[0]),
|
||||
Answer('Old Answer'),
|
||||
tags=set(self.args.output_tags),
|
||||
ai=self.args.AI,
|
||||
model=self.args.model,
|
||||
file_path=Path(self.cache_dir.name) / '0001.txt')
|
||||
message.to_file()
|
||||
chat = ChatDB.from_dir(Path(self.cache_dir.name),
|
||||
Path(self.db_dir.name))
|
||||
file_path=Path(self.cache_dir.name) / f'0001{msg_suffix}')
|
||||
chat.msg_write([message])
|
||||
cached_msg = chat.msg_gather(loc='cache')
|
||||
assert cached_msg[0].file_path
|
||||
cached_msg_file_id = cached_msg[0].file_path.stem
|
||||
@ -405,16 +408,16 @@ class TestQuestionCmdRepeat(TestQuestionCmd):
|
||||
Repeat a single question after an error.
|
||||
"""
|
||||
mock_create_ai.side_effect = self.mock_create_ai
|
||||
chat = ChatDB.from_dir(Path(self.cache_dir.name),
|
||||
Path(self.db_dir.name))
|
||||
# create a question WITHOUT an answer
|
||||
# -> just like after an error, which is tested above
|
||||
message = Message(Question(self.args.ask[0]),
|
||||
tags=set(self.args.output_tags),
|
||||
ai=self.args.AI,
|
||||
model=self.args.model,
|
||||
file_path=Path(self.cache_dir.name) / '0001.txt')
|
||||
message.to_file()
|
||||
chat = ChatDB.from_dir(Path(self.cache_dir.name),
|
||||
Path(self.db_dir.name))
|
||||
file_path=Path(self.cache_dir.name) / f'0001{msg_suffix}')
|
||||
chat.msg_write([message])
|
||||
cached_msg = chat.msg_gather(loc='cache')
|
||||
assert cached_msg[0].file_path
|
||||
cached_msg_file_id = cached_msg[0].file_path.stem
|
||||
@ -445,16 +448,16 @@ class TestQuestionCmdRepeat(TestQuestionCmd):
|
||||
Repeat a single question with new arguments.
|
||||
"""
|
||||
mock_create_ai.side_effect = self.mock_create_ai
|
||||
chat = ChatDB.from_dir(Path(self.cache_dir.name),
|
||||
Path(self.db_dir.name))
|
||||
# create a message
|
||||
message = Message(Question(self.args.ask[0]),
|
||||
Answer('Old Answer'),
|
||||
tags=set(self.args.output_tags),
|
||||
ai=self.args.AI,
|
||||
model=self.args.model,
|
||||
file_path=Path(self.cache_dir.name) / '0001.txt')
|
||||
message.to_file()
|
||||
chat = ChatDB.from_dir(Path(self.cache_dir.name),
|
||||
Path(self.db_dir.name))
|
||||
file_path=Path(self.cache_dir.name) / f'0001{msg_suffix}')
|
||||
chat.msg_write([message])
|
||||
cached_msg = chat.msg_gather(loc='cache')
|
||||
assert cached_msg[0].file_path
|
||||
|
||||
@ -483,16 +486,16 @@ class TestQuestionCmdRepeat(TestQuestionCmd):
|
||||
Repeat a single question with new arguments, overwriting the old one.
|
||||
"""
|
||||
mock_create_ai.side_effect = self.mock_create_ai
|
||||
chat = ChatDB.from_dir(Path(self.cache_dir.name),
|
||||
Path(self.db_dir.name))
|
||||
# create a message
|
||||
message = Message(Question(self.args.ask[0]),
|
||||
Answer('Old Answer'),
|
||||
tags=set(self.args.output_tags),
|
||||
ai=self.args.AI,
|
||||
model=self.args.model,
|
||||
file_path=Path(self.cache_dir.name) / '0001.txt')
|
||||
message.to_file()
|
||||
chat = ChatDB.from_dir(Path(self.cache_dir.name),
|
||||
Path(self.db_dir.name))
|
||||
file_path=Path(self.cache_dir.name) / f'0001{msg_suffix}')
|
||||
chat.msg_write([message])
|
||||
cached_msg = chat.msg_gather(loc='cache')
|
||||
assert cached_msg[0].file_path
|
||||
|
||||
@ -520,29 +523,29 @@ class TestQuestionCmdRepeat(TestQuestionCmd):
|
||||
Repeat multiple questions.
|
||||
"""
|
||||
mock_create_ai.side_effect = self.mock_create_ai
|
||||
chat = ChatDB.from_dir(Path(self.cache_dir.name),
|
||||
Path(self.db_dir.name))
|
||||
# 1. === create three questions ===
|
||||
# cached message without an answer
|
||||
message1 = Message(Question(self.args.ask[0]),
|
||||
tags=self.args.output_tags,
|
||||
ai=self.args.AI,
|
||||
model=self.args.model,
|
||||
file_path=Path(self.cache_dir.name) / '0001.txt')
|
||||
file_path=Path(self.cache_dir.name) / f'0001{msg_suffix}')
|
||||
# cached message with an answer
|
||||
message2 = Message(Question(self.args.ask[0]),
|
||||
Answer('Old Answer'),
|
||||
tags=self.args.output_tags,
|
||||
ai=self.args.AI,
|
||||
model=self.args.model,
|
||||
file_path=Path(self.cache_dir.name) / '0002.txt')
|
||||
file_path=Path(self.cache_dir.name) / f'0002{msg_suffix}')
|
||||
# DB message without an answer
|
||||
message3 = Message(Question(self.args.ask[0]),
|
||||
tags=self.args.output_tags,
|
||||
ai=self.args.AI,
|
||||
model=self.args.model,
|
||||
file_path=Path(self.db_dir.name) / '0003.txt')
|
||||
message1.to_file()
|
||||
message2.to_file()
|
||||
message3.to_file()
|
||||
file_path=Path(self.db_dir.name) / f'0003{msg_suffix}')
|
||||
chat.msg_write([message1, message2, message3])
|
||||
questions = [message1, message2, message3]
|
||||
expected_responses: list[Message] = []
|
||||
fake_ai = self.mock_create_ai(self.args, self.config)
|
||||
@ -566,8 +569,6 @@ class TestQuestionCmdRepeat(TestQuestionCmd):
|
||||
self.assertEqual(len(self.message_list(self.cache_dir)), 4)
|
||||
self.assertEqual(len(self.message_list(self.db_dir)), 1)
|
||||
expected_cache_messages = [expected_responses[0], message2, expected_responses[1], expected_responses[2]]
|
||||
chat = ChatDB.from_dir(Path(self.cache_dir.name),
|
||||
Path(self.db_dir.name))
|
||||
cached_msg = chat.msg_gather(loc='cache')
|
||||
self.assert_msgs_equal_except_file_path(cached_msg, expected_cache_messages)
|
||||
# check that the DB message has not been modified at all
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user