"""预签约日期不应到数据库 CHAR(8) 字段才失败。""" import pytest from pydantic import ValidationError from app.api.presign_order import PresignOrderBody @pytest.mark.parametrize('field', ['orderDate', 'expectedDeliveryDate']) @pytest.mark.parametrize('value', ['2026-10-15', '2026101', '20261301', '20260230', 'abcdefgh']) def test_invalid_presign_date_rejected_before_database(field, value): with pytest.raises(ValidationError): PresignOrderBody(**{field: value}) @pytest.mark.parametrize('field', ['orderDate', 'expectedDeliveryDate']) @pytest.mark.parametrize('value', ['20261015', '20240229', '', None]) def test_valid_or_empty_presign_date_keeps_existing_contract(field, value): body = PresignOrderBody(**{field: value}) assert body.model_dump(by_alias=True)[field] == value