diff --git a/api/tests/unit/test_worker.py b/api/tests/unit/test_worker.py index c4e865e..7ea88fb 100644 --- a/api/tests/unit/test_worker.py +++ b/api/tests/unit/test_worker.py @@ -567,14 +567,19 @@ async def test_lone_surrogate_in_is_error_message_does_not_break_publishing(make assert body["error"]["message"].endswith(" tail") -async def test_lone_surrogate_in_original_name_does_not_break_publishing(make_env: EnvFactory) -> None: +async def test_lone_surrogate_in_original_name_is_schema_mismatch(make_env: EnvFactory) -> None: + """Одиночный суррогат в `original_name` схема запроса не пропускает (pydantic `string_unicode`): SCHEMA_MISMATCH + без ack и без файла в горячей папке; сам конверт публикуется.""" env = await make_env() request = env.request(original_name="скан\udc80.pdf") data = json.dumps(request, ensure_ascii=True).encode("ascii") # в JSON суррогат приходит экранированным await env.deliver(data) await asyncio.wait_for(env.worker.wait_idle(), 5) - [(_, body)] = env.results(request["job_id"]) - assert body["status"] == "error" + job_id = request["job_id"] + [(_, body)] = env.results(job_id) + assert_error(body, ErrorCode.SCHEMA_MISMATCH, raw=False) + assert env.acks(job_id) == [] + assert env.hotfolder.puts == [] # --- остановка и прямой вызов handle (параллелизм — test_worker_concurrency.py) ---------------------------------------