import unittest import argparse import tempfile from chatmastermind.configuration import Config from chatmastermind.commands.glossary import glossary_cmd, GlossaryCmdError class TestGlossaryCmd(unittest.TestCase): def setUp(self) -> None: # create DB and cache self.db_dir = tempfile.TemporaryDirectory() self.cache_dir = tempfile.TemporaryDirectory() self.glossaries_dir = tempfile.TemporaryDirectory() # create configuration self.config = Config() self.config.cache = self.cache_dir.name self.config.db = self.db_dir.name self.config.glossaries = self.glossaries_dir.name # create a mock argparse.Namespace self.args = argparse.Namespace( create=True, list=False, name='new_glossary', file=None, source_lang='en', target_lang='de', ) def test_glossary_cmd_no_glossaries_err(self) -> None: """ Test calling the glossary command without a glossaries directory. """ self.config.glossaries = None with self.assertRaises(GlossaryCmdError) as err: glossary_cmd(self.args, self.config) self.assertIn(str(err.exception).lower(), "glossaries directory missing")