MRobot/test_category.py
2025-11-25 20:45:10 +08:00

69 lines
1.8 KiB
Python

#!/usr/bin/env python3
"""测试分类功能"""
from app.tools.finance_manager import FinanceManager, Transaction
# 创建财务管理器
fm = FinanceManager()
# 创建一个测试账户
account = fm.create_account("测试账户", "用于测试分类功能")
print(f"创建账户: {account.name} (ID: {account.id})")
print(f"初始分类: {account.categories}")
# 添加新分类
print("\n添加新分类...")
fm.add_category(account.id, "工作支出")
fm.add_category(account.id, "个人投资")
account = fm.get_account(account.id)
print(f"更新后的分类: {account.categories}")
# 创建交易记录
print("\n创建交易记录...")
trans1 = Transaction(
date="2024-01-01",
amount=1000,
trader="张三",
notes="工资",
category="工资"
)
fm.add_transaction(account.id, trans1)
trans2 = Transaction(
date="2024-01-02",
amount=-500,
trader="李四",
notes="午餐",
category="饮食"
)
fm.add_transaction(account.id, trans2)
trans3 = Transaction(
date="2024-01-03",
amount=-200,
trader="公司",
notes="项目费用",
category="工作支出"
)
fm.add_transaction(account.id, trans3)
# 查询交易记录
print("\n所有交易记录:")
account = fm.get_account(account.id)
for trans in account.transactions:
print(f" {trans.date} | {trans.trader} | {trans.category} | ¥{trans.amount:.2f} | {trans.notes}")
# 按分类查询
print("\n按分类查询 - 工资:")
results = fm.query_transactions(account.id, category="工资")
for trans in results:
print(f" {trans.date} | {trans.trader} | {trans.category} | ¥{trans.amount:.2f}")
print("\n按分类查询 - 饮食:")
results = fm.query_transactions(account.id, category="饮食")
for trans in results:
print(f" {trans.date} | {trans.trader} | {trans.category} | ¥{trans.amount:.2f}")
print("\nTest passed! ✓")