Docker Image CI / build (pull_request) Waiting to run
- test_stage_e_media_hotpath: добавлен тест cold-start magic-пути (dict-miss ->
SQLite-miss -> magic_mime.from_file -> write-through в ОБА кеша). Раньше все
тесты мокали get_mime_type_sync с возвратом (SQLite-hit), magic-ветка не
исполнялась — мутационно подтверждено (закомментировать dict-write на magic
пути -> тесты зелёные). Новый тест ассертит set_mime_type_sync И _mime_types[key].
- test_stage7_integration: два chdir-теста (:220, :251) не патчили MEDIA_CACHE_DIR
-> латентная зависимость от реального data/cache репо (MEDIA_CACHE_DIR теперь
import-time). Добавлен monkeypatch.setattr как в 4 соседних тестах.
Только тесты; прод-код не тронут.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Docker Image CI / build (pull_request) Waiting to run
Задание 15: MEDIA_CACHE_DIR (резолвится один раз при импорте) + media_cache_path(
channel, post_id, fid=None) -> <root>/<channel>/<post_id>[/<fid>] как единый
источник истины формата пути. Заменены все ручные сборки os.path.abspath('./data/
cache')+join (7 мест); строки путей дословно идентичны (drop-in). remove_old_
cached_files_sync/download_new_files сохраняют параметр cache_dir (тестируемость).
Задание 16: in-memory _mime_types (bound _MIME_CACHE_MAX=50000, clear() при
переполнении) перед SQLite в prepare_file_response. Порядок: dict -> SQLite ->
python-magic; SQLite-хит и magic-детект наполняют dict. MIME по file_unique_id
иммутабелен -> повторный /media-хит не открывает SQLite-соединение (ни на чтение
MIME, ни на запись access-time — она уже в аккумуляторе). Кэшируются только
реальные типы.
closes#26
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>