30 lines
912 B
Python
30 lines
912 B
Python
# -*- coding: utf-8 -*-
|
|
"""解析器测试"""
|
|
import pytest
|
|
from decimal import Decimal
|
|
from datetime import datetime
|
|
from zoneinfo import ZoneInfo
|
|
from models.parsers import TypeParser
|
|
|
|
def test_parse_decimal():
|
|
"""测试金额解析"""
|
|
assert TypeParser.parse_decimal("100.555", 2) == Decimal("100.56")
|
|
assert TypeParser.parse_decimal(None) is None
|
|
assert TypeParser.parse_decimal("invalid") is None
|
|
|
|
def test_parse_int():
|
|
"""测试整数解析"""
|
|
assert TypeParser.parse_int("123") == 123
|
|
assert TypeParser.parse_int(456) == 456
|
|
assert TypeParser.parse_int(None) is None
|
|
assert TypeParser.parse_int("abc") is None
|
|
|
|
def test_parse_timestamp():
|
|
"""测试时间戳解析"""
|
|
tz = ZoneInfo("Asia/Taipei")
|
|
dt = TypeParser.parse_timestamp("2025-01-15 10:30:00", tz)
|
|
assert dt is not None
|
|
assert dt.year == 2025
|
|
assert dt.month == 1
|
|
assert dt.day == 15
|