import os import sys import unittest sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..', 'payload', 'user', 'remote_access', 'pager-webui')) import server def setUpModule(): __import__('importlib').reload(server) class ReliabilityApiTest(unittest.TestCase): def setUp(self): self.runs = [] self.old_device_run = server.device_run server._health.update({ 'sigsegv_last': None, 'last_fix': 0.0, 'fixes': 0, 'last_action': None, 'pineap_up': False, 'monitor_fixes': 0}) def fake_run(args, timeout=20, input_data=None): self.runs.append((list(args), timeout)) return (0, '', '') server.device_run = fake_run def tearDown(self): server.device_run = self.old_device_run def test_h_health_exposes_reliability_feed(self): status, h = server.h_health(None) self.assertEqual(status, 200) for key in ('reliability', 'events', 'guard'): self.assertIn(key, h) for counter in ('boots', 'unexpected_boots', 'rollbacks', 'restarts', 'guard_fixes'): self.assertIn(counter, h['reliability']) self.assertIsInstance(h['events'], list) self.assertIn('in_sync', h['guard']) self.assertIn('pool_size', h['guard']) def test_check_boot_marker_uses_module_marker_path(self): import tempfile marker = tempfile.mktemp() old = server.BOOT_MARKER server.BOOT_MARKER = marker try: if os.path.exists(marker): os.unlink(marker) self.assertFalse(server.check_boot_marker()) self.assertTrue(os.path.exists(marker), 'check_boot_marker must use server.BOOT_MARKER') open(marker, 'w').write('0') self.assertTrue(server.check_boot_marker()) finally: if os.path.exists(marker): os.unlink(marker) server.BOOT_MARKER = old if __name__ == '__main__': unittest.main()