- HotFolder.poll(job_id) -> list[AnswerFile] | None: все *.json каталога <output>/<job_id>/ по возрастанию имени, когда набор не пуст и имена/размеры не менялись SCAN_SETTLE_SECONDS (SettleTracker: состояние по job_id, внедряемые часы, сброс при выдаче/опустении, предел 1024 задания, потокобезопасно); - put: временный .<name>.part в <корень>/<SCAN_TMP_DIR>/ (создаётся), rename в Input (Local и SMB); - настройки SCAN_TMP_DIR (Tmp) и SCAN_SETTLE_SECONDS (2, >= 0); в .env.test settle = 0 (R-23); - воркер: переходная прослойка — берётся первый файл набора (склейка всех — Task 3, R-22). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
30 lines
1.5 KiB
Plaintext
30 lines
1.5 KiB
Plaintext
# Окружение тестов (pytest.ini: ENV_FILE=.env.test, путь от каталога api/). Только dev-значения, секретов нет.
|
||
# Инфраструктура — compose-проект arm-ka на 127.0.0.1 (make up); модульные тесты в неё не ходят.
|
||
DEBUG=true
|
||
|
||
OPENBAO__MINIO__MINIO_URL=127.0.0.1:9000
|
||
OPENBAO__MINIO__MINIO_ADMIN_LOGIN=minioadmin
|
||
OPENBAO__MINIO__MINIO_ADMIN_PASSWORD=minioadmin
|
||
OPENBAO__MINIO__MINIO_BUCKET=arm-ka
|
||
OPENBAO__MINIO__MINIO_SECURE=false
|
||
|
||
OPENBAO__NATS__NATS_URL=nats://127.0.0.1:4222
|
||
OPENBAO__NATS__NATS_SEED=
|
||
OPENBAO__NATS__NATS_JWT=
|
||
|
||
NATS_ENABLED=true
|
||
|
||
# Корень горячей папки задаётся строкой и не обязан существовать: тесты, которым нужна папка, создают tmp-каталог
|
||
# и подставляют его сами
|
||
SCAN_HOTFOLDER_MODE=local
|
||
SCAN_HOTFOLDER_PATH=./.hotfolder-test
|
||
SCAN_INPUT_DIR=Input
|
||
SCAN_OUTPUT_DIR=Output
|
||
SCAN_TMP_DIR=Tmp
|
||
# Укороченные интервалы, чтобы тесты не ждали по 5 секунд
|
||
SCAN_POLL_SECONDS=0.1
|
||
SCAN_TIMEOUT_SECONDS=5
|
||
# R-23: набор ответа готов сразу (тесты воркера/таймаута/параллелизма не ждут стабилизации); settle проверяется
|
||
# отдельными тестами горячей папки с подменёнными часами
|
||
SCAN_SETTLE_SECONDS=0
|