Files
Imrayya 0b4f739d12 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
2026-07-01 11:19:32 +00:00

60 lines
1.7 KiB
Python

"""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"] == []