- 新增后台用车服务配置模块,支持维护服务简介、优势与使用流程 - 新增需求线索管理页面,支持筛选、查看与更新用车线索状态 - 新增小程序用车需求页面,优化登录路径与回跳逻辑 - 优化车型卡片跳转与用车需求提交功能 - 新增服务端API与数据处理逻辑,完善权限校验 - 更新全站配置与API文档,新增相关测试用例
49 lines
1.5 KiB
Python
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
|