TorqueWrench/backend/test_db.py

107 lines
2.7 KiB
Python
Raw Normal View History

2026-01-24 02:54:01 +08:00
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
测试数据库功能
"""
from database import Database
import json
# 初始化数据库
db = Database("wrench.db")
# 测试创建工单
print("="*60)
print("测试创建工单")
print("="*60)
test_order = {
"trace_id": "TR20260119001",
"process_id": "P001",
"process_name": "前轮装配",
"product_name": "汽车底盘组件",
"station": "装配工位A1",
"operator": "张三",
"status": "pending",
"bolts": [
{
"bolt_id": 1,
"name": "前轮螺栓1",
"target_torque": 280,
"mode": 1,
"torque_tolerance": 0.10,
"angle_min": 1,
"angle_max": 360,
"status": "pending"
},
{
"bolt_id": 2,
"name": "前轮螺栓2",
"target_torque": 300,
"mode": 1,
"torque_tolerance": 0.10,
"angle_min": 1,
"angle_max": 360,
"status": "pending"
}
]
}
if db.create_work_order(test_order):
print("[OK] 工单创建成功")
else:
print("[FAIL] 工单创建失败")
# 测试查询工单
print("\n" + "="*60)
print("测试查询工单")
print("="*60)
order = db.get_work_order("TR20260119001", "P001")
if order:
print(f"[OK] 查询成功: {order['trace_id']} - {order['process_id']}")
print(f" 工序名称: {order['process_name']}")
print(f" 螺栓数量: {len(order['bolts'])}")
else:
print("[FAIL] 查询失败:未找到工单")
# 测试查询可用工单
print("\n" + "="*60)
print("测试查询可用工单列表")
print("="*60)
available = db.get_available_work_orders("TR20260119001", "P001")
print(f"[OK] 找到 {len(available)} 个可用工单")
for order in available:
print(f" - {order['trace_id']} - {order['process_id']}: {order['process_name']} ({order['bolt_count']}个螺栓)")
# 从JSON导入数据
print("\n" + "="*60)
print("从JSON文件导入数据")
print("="*60)
try:
with open("work_orders.json", 'r', encoding='utf-8') as f:
json_orders = json.load(f)
count = 0
for order in json_orders:
if db.create_work_order(order):
count += 1
print(f"[OK] 成功导入 {count}/{len(json_orders)} 个工单")
# 再次查询
available = db.get_available_work_orders("TR20260119001", "P001")
print(f"\n[OK] 查询结果: 找到 {len(available)} 个可用工单")
for order in available:
print(f" - {order['trace_id']} - {order['process_id']}: {order['process_name']}")
except Exception as e:
print(f"[FAIL] 导入失败: {e}")
print("\n" + "="*60)
print("测试完成")
print("="*60)