Follow-ups from #26 #29

Open
opened 2026-10-09 16:24:58 +03:00 by aep · 1 comment
Owner

Отложенные находки финального ревью PR #27 (change hotfolder-direct-write, архив — PR #28).

  • M-1 — api/src/gateway/hotfolder.py: докстринги протокола HotFolder.put/HotFolder.cleanup описывают старую семантику («временный файл в Tmp, жёсткая ссылка без замены», «временные файлы»). Источник: финальное ревью #27.
  • M-2 — validate_name: «dot-файлы — служебные .part»; у шлюза .part больше нет, запрет точки обоснован игнором dot-файлов эмулятором/ИС. Источник: финальное ревью #27.
  • M-3 — SMB put: если после сбоя write упадёт ещё и close() (обрыв соединения), наружу уйдёт ошибка закрытия, а не записи (конверт тот же RECOGNITION_FAILED, другой текст); unit-теста на сбой посреди записи с падающим close нет. Источник: финальное ревью #27.
  • M-4 — api/src/core/worker.py: текст «Горячая папка недоступна: файл не записан» вводит в заблуждение при STATUS_SHARING_VIOLATION (файл занят ИС при повторе задания, R-8). Источник: финальное ревью #27.
  • M-5 — tests/unit/test_config.py::test_legacy_scan_tmp_dir_is_ignored проверяет env (pydantic-settings игнорирует его при любом extra), а не .env-файл; переписать на _env_file с SCAN_TMP_DIR=Tmp, прокомментировать SCAN_TMP_DIR в api/.env.test. Источник: финальное ревью #27.
  • O-1 — интеграционные тесты (queue group, roundtrip) падают при поднятом стенде: контейнер arm-ka-scan-gateway-1 в той же queue group забирает тестовые запросы. То же, что O-3 в #21. Источник: проверка #27.
Отложенные находки финального ревью PR #27 (change `hotfolder-direct-write`, архив — PR #28). - **M-1** — `api/src/gateway/hotfolder.py`: докстринги протокола `HotFolder.put`/`HotFolder.cleanup` описывают старую семантику («временный файл в `Tmp`, жёсткая ссылка без замены», «временные файлы»). Источник: финальное ревью #27. - **M-2** — `validate_name`: «dot-файлы — служебные `.part`»; у шлюза `.part` больше нет, запрет точки обоснован игнором dot-файлов эмулятором/ИС. Источник: финальное ревью #27. - **M-3** — SMB `put`: если после сбоя `write` упадёт ещё и `close()` (обрыв соединения), наружу уйдёт ошибка закрытия, а не записи (конверт тот же `RECOGNITION_FAILED`, другой текст); unit-теста на сбой посреди записи с падающим `close` нет. Источник: финальное ревью #27. - **M-4** — `api/src/core/worker.py`: текст «Горячая папка недоступна: файл не записан» вводит в заблуждение при `STATUS_SHARING_VIOLATION` (файл занят ИС при повторе задания, R-8). Источник: финальное ревью #27. - **M-5** — `tests/unit/test_config.py::test_legacy_scan_tmp_dir_is_ignored` проверяет env (pydantic-settings игнорирует его при любом `extra`), а не `.env`-файл; переписать на `_env_file` с `SCAN_TMP_DIR=Tmp`, прокомментировать `SCAN_TMP_DIR` в `api/.env.test`. Источник: финальное ревью #27. - **O-1** — интеграционные тесты (queue group, roundtrip) падают при поднятом стенде: контейнер `arm-ka-scan-gateway-1` в той же queue group забирает тестовые запросы. То же, что O-3 в #21. Источник: проверка #27.
Author
Owner

Перенёс сюда живой остаток из #9:

  • T12.4 — SMB cleanup: rmdir и вложенный каталог без обработки ENOENT (gateway/smb.py);
  • T12.6, T12.7 — дубли тестов и mypy в тестах SMB;
  • T13.2, T13.5, T13.6 — тесты очистки и ответа, cwd;
  • M-4 — устаревшая строка «все ошибки в raw/» в core/worker.py;
  • T14.6 — эмулятор: PDF по хешу есть, JSON-набора нет → «нет пары» (OQ-151).
Перенёс сюда живой остаток из #9: - T12.4 — SMB `cleanup`: rmdir и вложенный каталог без обработки ENOENT (`gateway/smb.py`); - T12.6, T12.7 — дубли тестов и mypy в тестах SMB; - T13.2, T13.5, T13.6 — тесты очистки и ответа, cwd; - M-4 — устаревшая строка «все ошибки в raw/» в `core/worker.py`; - T14.6 — эмулятор: PDF по хешу есть, JSON-набора нет → «нет пары» (OQ-151).
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: RSHB/arm-scan-gateway#29
No description provided.