"""Shelly internal model code → display names.""" from __future__ import annotations from datetime import UTC, datetime from shelly_manager.core.model_names import ( format_model_for_ui, format_model_plain, shelly_model_display_name, ) from shelly_manager.core.models import ShellyDevice def test_snsw_001p16eu_is_plus_1pm() -> None: assert shelly_model_display_name("SNSW-001P16EU") == "Plus 1PM" def test_unknown_model_returns_raw() -> None: assert shelly_model_display_name("UNKNOWN-XYZ") == "UNKNOWN-XYZ" def test_format_model_plain() -> None: assert "Plus 1PM" in format_model_plain("SNSW-001P16EU") assert "SNSW-001P16EU" in format_model_plain("SNSW-001P16EU") def test_shelly_device_model_label() -> None: d = ShellyDevice( id="AABBCCDDEEFF", name=None, mac="AA:BB:CC:DD:EE:FF", ip="192.168.1.1", generation=2, model="SNSW-001P16EU", firmware="1.0", online=True, last_seen=datetime.now(UTC), capabilities=[], status={}, settings={}, ) assert d.model_display_name == "Plus 1PM" assert "Plus 1PM" in d.model_label assert "SNSW-001P16EU" in d.model_label