hist_cmd: added module 'test_hist_cmd.py'
This commit is contained in:
parent
811b2e6830
commit
420423b36e
57
tests/test_hist_cmd.py
Normal file
57
tests/test_hist_cmd.py
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
import unittest
|
||||||
|
import argparse
|
||||||
|
import tempfile
|
||||||
|
import yaml
|
||||||
|
from pathlib import Path
|
||||||
|
from chatmastermind.message import Message, Question
|
||||||
|
from chatmastermind.chat import ChatDB
|
||||||
|
from chatmastermind.configuration import Config
|
||||||
|
from chatmastermind.commands.hist import convert_messages
|
||||||
|
|
||||||
|
|
||||||
|
msg_suffix = Message.file_suffix_write
|
||||||
|
|
||||||
|
|
||||||
|
class TestConvertMessages(unittest.TestCase):
|
||||||
|
def setUp(self) -> None:
|
||||||
|
self.db_dir = tempfile.TemporaryDirectory()
|
||||||
|
self.cache_dir = tempfile.TemporaryDirectory()
|
||||||
|
self.db_path = Path(self.db_dir.name)
|
||||||
|
self.cache_path = Path(self.cache_dir.name)
|
||||||
|
self.args = argparse.Namespace()
|
||||||
|
self.config = Config()
|
||||||
|
self.config.cache = self.cache_dir.name
|
||||||
|
self.config.db = self.db_dir.name
|
||||||
|
self.args.convert = 'yaml'
|
||||||
|
# Prepare some messages
|
||||||
|
self.chat = ChatDB.from_dir(Path(self.cache_path),
|
||||||
|
Path(self.db_path))
|
||||||
|
self.messages = [Message(Question(f'Question {i}')) for i in range(1, 6)]
|
||||||
|
self.chat.db_write(self.messages[0:2])
|
||||||
|
self.chat.cache_write(self.messages[3:])
|
||||||
|
# Change some of the suffixes
|
||||||
|
assert self.messages[0].file_path
|
||||||
|
assert self.messages[1].file_path
|
||||||
|
self.messages[0].file_path.rename(self.messages[0].file_path.with_suffix('.txt'))
|
||||||
|
self.messages[1].file_path.rename(self.messages[1].file_path.with_suffix('.yaml'))
|
||||||
|
|
||||||
|
def tearDown(self) -> None:
|
||||||
|
self.db_dir.cleanup()
|
||||||
|
self.cache_dir.cleanup()
|
||||||
|
|
||||||
|
def test_convert_messages(self) -> None:
|
||||||
|
convert_messages(self.args, self.config)
|
||||||
|
msgs = self.chat.msg_gather(loc='disk', glob='*.*')
|
||||||
|
# Check if the number of messages is the same as before
|
||||||
|
self.assertEqual(len(msgs), len(self.messages))
|
||||||
|
# Check if all messages have the requested suffix
|
||||||
|
for msg in msgs:
|
||||||
|
assert msg.file_path
|
||||||
|
self.assertEqual(msg.file_path.suffix, msg_suffix)
|
||||||
|
# Check if the message IDs are correctly maintained
|
||||||
|
for m_new, m_old in zip(msgs, self.messages):
|
||||||
|
self.assertEqual(m_new.msg_id(), m_old.msg_id())
|
||||||
|
# check if all messages have the new format
|
||||||
|
for m in msgs:
|
||||||
|
with open(str(m.file_path), "r") as fd:
|
||||||
|
yaml.load(fd, Loader=yaml.FullLoader)
|
||||||
Loading…
x
Reference in New Issue
Block a user