test_presign_order_date_validation.py 821 B

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