import importlib.util from pathlib import Path import unittest from unittest.mock import patch MODULE_PATH = Path(__file__).resolve().parents[1] / "main.py" spec = importlib.util.spec_from_file_location("toreadeck_main", MODULE_PATH) main = importlib.util.module_from_spec(spec) spec.loader.exec_module(main) class LocalLibraryTests(unittest.TestCase): def test_default_config_has_reader_directory(self): with patch.object(main, "CONFIG_FILE", "missing-config.json"): config = main.load_config() self.assertEqual(config["reader_directory"], str(Path(main.BASE_DIR) / "pages")) def test_library_lists_files_without_loading_their_contents(self): from tempfile import TemporaryDirectory with TemporaryDirectory() as directory: path = Path(directory) (path / "note.txt").write_text("Очень большой текст файла", encoding="utf-8") with patch.object(main, "load_config", return_value={"reader_directory": str(path)}): response = main.reader_window() body = response.body.decode("utf-8") self.assertEqual(response.status_code, 200) self.assertIn("Локальная библиотека", body) self.assertIn("note.txt", body) self.assertIn("Открыть", body) self.assertNotIn("Очень большой текст файла", body) self.assertNotIn("