import os import shutil import tempfile import unittest import importlib class TestDocumentsStorage(unittest.TestCase): def setUp(self): self._old_env = dict(os.environ) self.tmp = tempfile.mkdtemp(prefix="llm-council-docs-") os.environ["DOCS_DIR"] = self.tmp os.environ["MAX_DOC_BYTES"] = "100" import backend.config as config import backend.documents as documents self.config = importlib.reload(config) self.documents = importlib.reload(documents) def tearDown(self): os.environ.clear() os.environ.update(self._old_env) shutil.rmtree(self.tmp, ignore_errors=True) def test_save_and_list_document(self): meta = self.documents.save_markdown_document( "conv1", "../weird/name.md", b"# Hello\n", ) self.assertTrue(meta.id) self.assertEqual(meta.filename, "name.md") self.assertEqual(meta.bytes, 8) listed = self.documents.list_documents("conv1") self.assertEqual(len(listed), 1) self.assertEqual(listed[0].id, meta.id) self.assertEqual(listed[0].filename, "name.md") text = self.documents.read_document_text("conv1", meta.id) self.assertIn("# Hello", text) def test_rejects_too_large(self): with self.assertRaises(ValueError): self.documents.save_markdown_document("conv1", "a.md", b"x" * 101)