38 lines
1.3 KiB
Python
38 lines
1.3 KiB
Python
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")
|