Files
WonderQ-Project/WonderQ-Admin/tests/test_schemas.py
duanshuwen d42f69bd47 feat: 新增用车需求服务及线索管理全功能
- 新增后台用车服务配置模块,支持维护服务简介、优势与使用流程
- 新增需求线索管理页面,支持筛选、查看与更新用车线索状态
- 新增小程序用车需求页面,优化登录路径与回跳逻辑
- 优化车型卡片跳转与用车需求提交功能
- 新增服务端API与数据处理逻辑,完善权限校验
- 更新全站配置与API文档,新增相关测试用例
2026-08-22 21:48:08 +08:00

49 lines
1.5 KiB
Python

import pytest
from pydantic import ValidationError
from app.schemas import LeadCreateIn
def test_lead_phone_is_normalized():
lead = LeadCreateIn(phone=" 187 8617 4929 ")
assert lead.phone == "187 8617 4929"
def test_vehicle_lead_normalizes_nested_demand():
lead = LeadCreateIn(
leadType="vehicle",
contactName=" Damon ",
phone=" 13800000000 ",
vehicleDemand={
"serviceType": "charter",
"charterDuration": "fullDay",
"travelDate": "2026-08-25",
"pickupTime": "09:00",
"pickupLocation": " 贵阳北站 ",
"dropoffLocation": " 黄果树景区 ",
"peopleCount": 5,
"luggageCount": 3,
"vehicleOptionId": "vehicle-option-uuid",
"vehicleOptionTitle": "多人商务车",
"specialRequirements": " 需要儿童座椅 ",
},
sourcePage="home-vehicle",
)
assert lead.leadType == "vehicle"
assert lead.contactName == "Damon"
assert lead.vehicleDemand.travelDate.isoformat() == "2026-08-25"
assert lead.vehicleDemand.pickupLocation == "贵阳北站"
assert lead.vehicleDemand.specialRequirements == "需要儿童座椅"
def test_vehicle_lead_requires_vehicle_demand():
with pytest.raises(ValidationError):
LeadCreateIn(leadType="vehicle", phone="13800000000")
def test_generic_lead_remains_guest_compatible():
lead = LeadCreateIn(phone="13800000000", destination="贵州")
assert lead.leadType == "general"
assert lead.vehicleDemand is None