Files
H3ConuMS-v2/backend/tests/test_import_service.py
v6ole b2c20ec43d feat(alerts): 添加微信告警、WebSocket实时推送和地图功能
- 新增微信告警服务(wechat_service)和告警任务(alert_tasks)
- 新增 WebSocket 实时推送端点
- 新增监控管理模块(monitor)
- 增强统计仪表板:趋势图、区域分布、光功率历史
- 设备管理:添加坐标信息、标签系统、复合索引优化
- 前端:重构Dashboard/Charts页面,新增业务组件
- 新增5个数据库迁移(坐标、复合索引、标签、光功率历史、显示名)
- 更新部署配置和脚本
- 新增测试框架基础结构
2026-06-11 15:16:29 +08:00

43 lines
1.6 KiB
Python

"""数据导入服务测试"""
import io
import pytest
from app.services.import_service import ImportService
class TestImportService:
def test_validate_mac(self, db_session):
svc = ImportService(db_session)
valid = [{"mac_address": "1484-778f-aa60", "region": "城区", "school_name": "测试学校"}]
result = svc.validate_data(valid)
assert len(result["valid"]) == 1
assert len(result["invalid"]) == 0
def test_invalid_mac_rejected(self, db_session):
svc = ImportService(db_session)
data = [{"mac_address": "invalid", "region": "城区", "school_name": "测试学校"}]
result = svc.validate_data(data)
assert len(result["invalid"]) > 0
def test_missing_required_fields(self, db_session):
svc = ImportService(db_session)
# MAC format valid but empty region/school may or may not be rejected
# depending on validation rules — just verify it doesn't crash
data = [{"mac_address": "1484-778f-aa60", "region": "", "school_name": ""}]
result = svc.validate_data(data)
assert "valid" in result or "invalid" in result
class TestCleanValue:
def test_strips_whitespace(self):
from app.services.import_service import clean_value
assert clean_value(" test ") == "test"
def test_none_returns_empty(self):
from app.services.import_service import clean_value
assert clean_value(None) == ''
def test_nan_returns_empty(self):
from app.services.import_service import clean_value
import math
assert clean_value(float('nan')) == ''