aboutsummaryrefslogtreecommitdiffstats
path: root/tests/test_gui.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_gui.py')
-rw-r--r--tests/test_gui.py35
1 files changed, 32 insertions, 3 deletions
diff --git a/tests/test_gui.py b/tests/test_gui.py
index b99aebf..a597c01 100644
--- a/tests/test_gui.py
+++ b/tests/test_gui.py
@@ -30,6 +30,7 @@ ROOT = os.path.join(os.path.dirname(os.path.abspath(__file__)), "..")
sys.path.insert(0, ROOT)
from PyQt6.QtCore import QCoreApplication, QEvent, QObject, QProcess, pyqtSignal # noqa: E402
+from PyQt6.QtGui import QColor # noqa: E402
from PyQt6.QtWidgets import QApplication # noqa: E402
from sb_builder import VERSION, config # noqa: E402
@@ -120,8 +121,10 @@ class FakeNotifier(QObject):
self.sent.append((title, body, jid))
-STATS = {"load": [0.5, 0.4, 0.3], "uptime": 3600.0,
- "disk_free": {"repo": 10 * 2**30, "state": None},
+STATS = {"load": [0.5, 0.4, 0.3], "uptime": 3600.0, "cpu": 85.0,
+ "mem": {"total": 16 * 2**30, "available": 12 * 2**30},
+ "disk": {"total": 100 * 2**30, "free": 10 * 2**30},
+ "slackpkg": {"update": 1791760212, "upgrade": None},
"packages": {"total": 10, "personal": 2, "pentesting": 1, "shadowed": 1},
"sync": {"personal": None, "pentesting": 1792351223}, "slackrepo": None}
JOB = {"id": "20260101-000000-sbshadow", "kind": "sbshadow", "args": ["--no"], "argv": [],
@@ -249,6 +252,25 @@ class FilterTest(unittest.TestCase):
self.assertEqual(self.names("cat:misc", statuses={"ok"}), [])
+class MeterTest(unittest.TestCase):
+ def test_color_thresholds(self):
+ from sb_builder.dashboard import STATUS, meter_color
+ accent = QColor("#123456")
+ self.assertEqual(meter_color(79.9, accent), accent)
+ self.assertEqual(meter_color(80, accent), QColor(STATUS["aborted"]))
+ self.assertEqual(meter_color(95, accent), QColor(STATUS["failed"]))
+
+ def test_sparkline_cap_and_nulls(self):
+ from sb_builder.dashboard import Meter
+ m = Meter("CPU", spark=True)
+ for i in range(100):
+ m.set(float(i), "")
+ self.assertEqual(len(m.spark.points), m.spark.points.maxlen)
+ self.assertEqual(m.spark.points[-1], 99.0)
+ m.set(None, "")
+ self.assertEqual(m.value.text(), "n/a")
+
+
class SmokeTest(unittest.TestCase):
def window(self, **answers):
remote = FakeRemote({"version": ({"version": VERSION, "overlays": ["personal"]}, None),
@@ -269,7 +291,14 @@ class SmokeTest(unittest.TestCase):
self.assertEqual(tiles["Packages"].value.text(), "10")
self.assertEqual(tiles["Packages"].detail.text(), "2\u00a0personal · 1\u00a0pentesting · 1\u00a0shadowed")
self.assertEqual(tiles["Built"].value.text(), "n/a")
- self.assertIn("10.0 GiB free", tiles["VM load"].detail.text())
+ d = w.dashboard
+ self.assertEqual((d.cpu.value.text(), d.ram.value.text(), d.disk.value.text()),
+ ("85%", "25%", "90%"))
+ self.assertIn("load 0.50", d.cpu.detail.text())
+ self.assertEqual(d.disk.detail.text(), "10.0 GiB free of 100.0 GiB")
+ self.assertEqual(tiles["slackpkg"].value.text(), "n/a")
+ self.assertIn("lists updated", tiles["slackpkg"].detail.text())
+ self.assertEqual(len(d.cpu.spark.points), 1)
self.assertEqual(w.dashboard.legend.text(), "n/a")
jobs = w.open_jobs()
self.assertIs(w.open_jobs(), jobs)