Initial commit: Shelly Manager with Textual CLI, Streamlit UI, and comprehensive .gitignore
Shelly device management app with mDNS/subnet discovery, inventory, configuration, and mass operations for Gen1/Gen2+ devices. Includes .gitignore excluding runtime data (device DB, user config), AI conversation history, build artifacts, and common Python/OS patterns.
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
"""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
|
||||
Reference in New Issue
Block a user