"""数据导入服务测试""" 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')) == ''