| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- """车辆加油登记 Schema 单测"""
- from datetime import date
- from decimal import Decimal
- import pytest
- from pydantic import ValidationError
- from app.schemas.pl.vehicle_fuel import VehicleFuelRegisterCreate
- def test_create_accepts_bailian():
- body = VehicleFuelRegisterCreate.model_validate(
- {
- "fuelCategory": "bailian",
- "registerDate": "2026-09-12",
- "licensePlate": "皖A12345",
- "fuelLiters": "50.5",
- "odometerKm": "12000.0",
- }
- )
- assert body.fuel_category == "bailian"
- assert body.fuel_liters == Decimal("50.5")
- assert body.register_date == date(2026, 9, 12)
- def test_create_rejects_invalid_category():
- with pytest.raises(ValidationError):
- VehicleFuelRegisterCreate.model_validate(
- {
- "fuelCategory": "etc",
- "registerDate": "2026-09-12",
- "licensePlate": "皖A12345",
- "fuelLiters": "10",
- }
- )
- def test_create_rejects_non_positive_liters():
- with pytest.raises(ValidationError):
- VehicleFuelRegisterCreate.model_validate(
- {
- "fuelCategory": "gas_station",
- "registerDate": "2026-09-12",
- "licensePlate": "皖A12345",
- "fuelLiters": "0",
- }
- )
- def test_create_accepts_shanxia_factory():
- body = VehicleFuelRegisterCreate.model_validate(
- {
- "fuelCategory": "shanxia_factory",
- "registerDate": "2026-09-12",
- "licensePlate": "皖A12345",
- "fuelLiters": "1176",
- }
- )
- assert body.fuel_category == "shanxia_factory"
- def test_calc_fuel_tons():
- from app.schemas.pl.vehicle_fuel import calc_fuel_tons
- assert calc_fuel_tons(Decimal("1176")) == Decimal("1.000")
- assert calc_fuel_tons(Decimal("310")) == Decimal("0.264")
- def test_read_requires_seq_no_and_aliases():
- from datetime import datetime
- from app.schemas.pl.vehicle_fuel import VehicleFuelRegisterRead
- row = VehicleFuelRegisterRead.model_validate(
- {
- "id": "abc",
- "seqNo": 7,
- "registerNo": "SXJY20260917000001",
- "fuelCategory": "bailian",
- "registerDate": "2026-09-17",
- "registrantId": "u1",
- "licensePlate": "皖A12345",
- "fuelLiters": "50",
- "status": "normal",
- "createTime": "2026-09-17T10:00:00",
- }
- )
- dumped = row.model_dump(by_alias=True)
- assert dumped["seqNo"] == 7
- assert dumped["registerNo"] == "SXJY20260917000001"
- assert isinstance(row.create_time, datetime)
|