feat: initial project scaffold — server, client, Android APK
- FastAPI server with audio mixer (Windows + Voicemeeter), media tracking, notifications (progress + alerts), telemetry, and system tray .exe build - Test suite covering notifications, audio mixer, media, telemetry, and API - E-Ink web client (vanilla JS, DOM API, block meters, swipe gestures) - Android WebView APK for BOOX Go 7 Color Gen II (Android 13, Kotlin) - Design decision records in .pi/docs/design/ - PyInstaller build script for server .exe
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
"""Tests for the telemetry module."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
|
||||
from ..telemetry import SensorReading, TelemetryManager, TelemetryState
|
||||
|
||||
|
||||
class TestSensorReading:
|
||||
def test_defaults(self) -> None:
|
||||
reading = SensorReading(name="CPU Temp", value=65.0, unit="C")
|
||||
assert reading.name == "CPU Temp"
|
||||
assert reading.value == 65.0
|
||||
assert reading.unit == "C"
|
||||
assert reading.category == ""
|
||||
|
||||
def test_with_category(self) -> None:
|
||||
reading = SensorReading(name="GPU Usage", value=72.0, unit="%", category="GPU")
|
||||
assert reading.category == "GPU"
|
||||
|
||||
|
||||
class TestTelemetryState:
|
||||
def test_defaults(self) -> None:
|
||||
state = TelemetryState()
|
||||
assert state.cpu_temp == 0.0
|
||||
assert state.gpu_temp == 0.0
|
||||
assert state.sensors == []
|
||||
|
||||
def test_with_values(self) -> None:
|
||||
state = TelemetryState(
|
||||
cpu_temp=72.5,
|
||||
gpu_temp=68.0,
|
||||
cpu_usage=45.0,
|
||||
sensors=[
|
||||
SensorReading(name="CPU", value=72.5, unit="C"),
|
||||
],
|
||||
)
|
||||
assert state.cpu_temp == 72.5
|
||||
assert len(state.sensors) == 1
|
||||
|
||||
|
||||
class TestTelemetryManager:
|
||||
def test_init(self) -> None:
|
||||
manager = TelemetryManager()
|
||||
assert manager._state is not None
|
||||
|
||||
def test_get_state_returns_dict(self) -> None:
|
||||
manager = TelemetryManager()
|
||||
state = manager.get_state()
|
||||
assert isinstance(state, dict)
|
||||
assert "cpu_temp" in state
|
||||
assert "gpu_temp" in state
|
||||
assert "sensors" in state
|
||||
|
||||
def test_get_state_empty(self) -> None:
|
||||
manager = TelemetryManager()
|
||||
state = manager.get_state()
|
||||
assert state["cpu_temp"] == 0.0
|
||||
assert state["sensors"] == []
|
||||
Reference in New Issue
Block a user