From c82f5e42dde5c6e4ff143740ca07a5f8c56fdb00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=84=A6=E9=BE=99=E8=A8=80?= Date: Tue, 22 Sep 2026 15:46:00 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=EF=BC=9A=E7=BB=9F=E4=B8=80?= =?UTF-8?q?=E8=B6=85=E9=95=BF=E6=89=B9=E6=AC=A1=E6=A0=87=E8=AF=86=E9=94=99?= =?UTF-8?q?=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module_business/dependency/test_batch_dependency.py | 5 ++++- .../tests/module_business/test_test_batch_access.py | 4 ++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/shierfeng-fastapi-backend/module_business/dependency/test_batch_dependency.py b/shierfeng-fastapi-backend/module_business/dependency/test_batch_dependency.py index 1185ae3..4cb87f2 100644 --- a/shierfeng-fastapi-backend/module_business/dependency/test_batch_dependency.py +++ b/shierfeng-fastapi-backend/module_business/dependency/test_batch_dependency.py @@ -16,7 +16,10 @@ def parse_optional_positive_batch_id(raw: str | None) -> int | None: return None if not isinstance(raw, str) or not raw or not raw.isascii() or not raw.isdigit(): raise ServiceWarning('', '测试批次标识必须为正整数') - batch_id = int(raw) + try: + batch_id = int(raw) + except ValueError: + raise ServiceWarning('', '测试批次标识必须为正整数') from None if batch_id <= 0: raise ServiceWarning('', '测试批次标识必须为正整数') return batch_id diff --git a/shierfeng-fastapi-backend/tests/module_business/test_test_batch_access.py b/shierfeng-fastapi-backend/tests/module_business/test_test_batch_access.py index 7678031..c200a86 100644 --- a/shierfeng-fastapi-backend/tests/module_business/test_test_batch_access.py +++ b/shierfeng-fastapi-backend/tests/module_business/test_test_batch_access.py @@ -87,6 +87,10 @@ class TestBatchHeaderTest(unittest.TestCase): with self.subTest(raw=raw), self.assertRaisesRegex(ServiceWarning, '测试批次标识必须为正整数'): parse_optional_positive_batch_id(raw) + def test_overlong_ascii_decimal_is_mapped_to_service_warning(self) -> None: + with self.assertRaisesRegex(ServiceWarning, '测试批次标识必须为正整数'): + parse_optional_positive_batch_id('9' * 5000) + class TestBatchAccessTest(unittest.IsolatedAsyncioTestCase): async def asyncSetUp(self) -> None: