ETest-Vue-FastAPI/test_receipt.py

56 lines
1.5 KiB
Python
Raw Permalink Normal View History

2026-04-15 19:06:01 +08:00
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import asyncio
import sys
sys.path.insert(0, 'ruoyi-fastapi-backend')
from datetime import date, datetime
from utils.common_util import CamelCaseUtil
# 模拟数据库返回的数据
receipt_dict = {
'receiptId': 685,
'receiptNo': '2026内检509',
'receiptDate': date(2026, 1, 12),
'createTime': datetime(2026, 4, 15, 13, 27, 44),
'samples': [
{
'sampleId': 3879,
'sampleSn': '2509002SG',
'testDeadline': None,
'createTime': datetime(2026, 4, 15, 13, 27, 44)
},
{
'sampleId': 3880,
'sampleSn': '2509003SG',
'testDeadline': None,
'createTime': datetime(2026, 4, 15, 13, 27, 44)
}
]
}
# 测试 serialize_dates 函数
def serialize_dates(obj):
if isinstance(obj, dict):
for key, value in obj.items():
if hasattr(value, 'isoformat'): # datetime/date 对象
obj[key] = value.isoformat()
elif isinstance(value, list):
for item in value:
serialize_dates(item)
return obj
print("Original:", receipt_dict)
result = serialize_dates(receipt_dict)
print("Serialized:", result)
# 测试 jsonable_encoder
from fastapi.encoders import jsonable_encoder
try:
encoded = jsonable_encoder(result)
print("jsonable_encoder success:", encoded)
except Exception as e:
import traceback
print("jsonable_encoder error:")
traceback.print_exc()