"""Tests for app.utils.health — get_health_level / get_health_level_label""" import pytest from app.utils.health import get_health_level, get_health_level_label # ── get_health_level ────────────────────────────────────────── class TestGetHealthLevel: """根据评分返回健康等级字符串""" def test_excellent_lower_bound(self): assert get_health_level(80) == "excellent" def test_excellent_high(self): assert get_health_level(100) == "excellent" def test_good_upper_bound(self): assert get_health_level(79) == "good" def test_good_lower_bound(self): assert get_health_level(60) == "good" def test_pass_upper_bound(self): assert get_health_level(59) == "pass" def test_pass_lower_bound(self): assert get_health_level(40) == "pass" def test_danger_upper_bound(self): assert get_health_level(39) == "danger" def test_danger_zero(self): assert get_health_level(0) == "danger" def test_negative_score(self): assert get_health_level(-10) == "danger" def test_float_score(self): assert get_health_level(80.5) == "excellent" # ── get_health_level_label ──────────────────────────────────── class TestGetHealthLevelLabel: """根据等级返回中文标签""" @pytest.mark.parametrize( "level, label", [ ("excellent", "优秀"), ("good", "良好"), ("pass", "及格"), ("danger", "危险"), ], ) def test_known_levels(self, level, label): assert get_health_level_label(level) == label def test_unknown_level(self): assert get_health_level_label("unknown") == "未知" def test_empty_string(self): assert get_health_level_label("") == "未知"