/
tsps
/
case_loader
Обзор
Документация
Войти
/
tsps
/
case_loader
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
master
tests/test_local_storage.py
79 строк
4 KB
Василий Петров
Парсинг даты/дела вместе с документом
14 фев 2026, 17:15
14 фев 2026, 17:15
1f6e62c
Код
Авторство
О чём код?
from pathlib import Path from app.core.storage import LocalStorage import tempfile class TestLocalStorage: def test_save_and_get_parsed_text(self): with tempfile.TemporaryDirectory() as temp_dir: storage = LocalStorage(Path(temp_dir)) test_text = "Дело №123\nСудья: Иванов И.И." assert storage.save_parsed_text("test_case", test_text) == True loaded_text = storage.get_parsed_text("test_case") assert loaded_text == test_text def test_save_pdf(self): with tempfile.TemporaryDirectory() as temp_dir: storage = LocalStorage(Path(temp_dir)) test_pdf_content = b"%PDF-1.4 fake pdf content" assert storage.save_pdf("test_case", test_pdf_content) == True pdf_file = storage.pdfs_path / "test_case.pdf" assert pdf_file.exists() with open(pdf_file, 'rb') as f: assert f.read() == test_pdf_content def test_get_nonexistent_parsed_text(self): with tempfile.TemporaryDirectory() as temp_dir: storage = LocalStorage(Path(temp_dir)) assert storage.get_parsed_text("nonexistent") is None def test_directories_created(self): with tempfile.TemporaryDirectory() as temp_dir: storage = LocalStorage(Path(temp_dir)) assert storage.pdfs_path.exists() assert storage.parsed_path.exists() assert storage.pdfs_path.name == "pdfs" assert storage.parsed_path.name == "parsed" def test_filename_sanitization(self): """Тест замены спецсимволов в имени файла (/ \\ : * ? \" < > |)""" with tempfile.TemporaryDirectory() as temp_dir: storage = LocalStorage(Path(temp_dir)) # Тестовые данные с проблемными символами dirty_names = [ "А47-15220/2023", # слэш в номере дела "Дело: с двоеточием", # двоеточие "Вопрос? да", # вопросительный знак 'Кавычки"тут"', # кавычки "Звёздочка*проблема", # звёздочка "Меньше<больше", # угловые скобки "Вертикальная|черта", # вертикальная черта "Обратный\\слэш", # обратный слэш ] test_pdf = b"%PDF-1.4 sanitized test" test_text = "Текст документа с спецсимволами" for name in dirty_names: # Сохраняем assert storage.save_pdf(name, test_pdf), f"Не удалось сохранить PDF для '{name}'" assert storage.save_parsed_text(name, test_text), f"Не удалось сохранить текст для '{name}'" # Загружаем обратно по исходному имени (без санитизации) loaded_text = storage.get_parsed_text(name) assert loaded_text == test_text, f"Текст не совпадает для '{name}'" # Проверяем, что файл реально сохранён с заменёнными символами safe_name = storage._sanitize_filename(name) pdf_path = storage.pdfs_path / f"{safe_name}.pdf" txt_path = storage.parsed_path / f"{safe_name}.txt" assert pdf_path.exists(), f"PDF файл не найден по пути {pdf_path}" assert txt_path.exists(), f"Текстовый файл не найден по пути {txt_path}"