e3b20089f0
release / release (push) Successful in 14s
- feat(alerts): desktop notifications (notify-send) for overheat (GPU/CPU past a configurable threshold), GPU-lost, and a new-version-available alert (once per version). Edge-triggered with cooldown so it doesn't spam (core/alerts.py) - feat(gui): Notifications page to configure alerts (enable, GPU/CPU thresholds, Send test); changes apply live and persist via config.save_config/update_config - feat(gui): ship a RigDoctor icon; the GUI self-registers the icon + .desktop on launch and sets the Wayland app-id, so the dock shows it after an update + relaunch (no installer re-run); installer/uninstaller updated to manage the icon - config: alerts_enabled, gpu_temp_alert, cpu_temp_alert; flat-TOML writer - tests for the alert monitor and config round-trip Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
33 lines
1.3 KiB
Python
33 lines
1.3 KiB
Python
"""Tests for config save/load (flat TOML writer)."""
|
|
|
|
import tempfile
|
|
import unittest
|
|
from pathlib import Path
|
|
from unittest import mock
|
|
|
|
from rigdoctor import config
|
|
|
|
|
|
class ConfigTests(unittest.TestCase):
|
|
def test_save_load_round_trip(self):
|
|
with tempfile.TemporaryDirectory() as d:
|
|
cf = Path(d) / "config.toml"
|
|
with mock.patch.object(config, "CONFIG_FILE", cf), mock.patch.object(config, "CONFIG_DIR", Path(d)):
|
|
config.save_config({"alerts_enabled": False, "gpu_temp_alert": 88.0, "update_check_minutes": 5})
|
|
loaded = config.load_config()
|
|
self.assertIs(loaded["alerts_enabled"], False)
|
|
self.assertEqual(loaded["gpu_temp_alert"], 88.0)
|
|
self.assertEqual(loaded["update_check_minutes"], 5)
|
|
|
|
def test_update_config_merges_and_keeps_defaults(self):
|
|
with tempfile.TemporaryDirectory() as d:
|
|
cf = Path(d) / "config.toml"
|
|
with mock.patch.object(config, "CONFIG_FILE", cf), mock.patch.object(config, "CONFIG_DIR", Path(d)):
|
|
config.update_config(cpu_temp_alert=70.0)
|
|
self.assertEqual(config.load_config()["cpu_temp_alert"], 70.0)
|
|
self.assertEqual(config.load_config()["gpu_temp_alert"], 90.0) # default preserved
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|