ThePirateRay/tests/test_rayforge_windows_gui_preflight.py

35 lines
1.3 KiB
Python

import json
import unittest
from pathlib import Path
ROOT = Path(__file__).parents[1]
RESULT = ROOT / "tests" / "fixtures" / "rayforge-windows-gui-preflight.json"
class RayforgeWindowsGuiPreflightTests(unittest.TestCase):
def setUp(self):
self.result = json.loads(RESULT.read_text(encoding="utf-8"))
def test_preflight_is_transport_free(self):
self.assertIsNone(self.result["transport"])
self.assertFalse(self.result["controller_backend_reachable"])
def test_missing_runtime_blocks_gui_claim(self):
self.assertEqual("blocked", self.result["status"])
self.assertFalse(self.result["ready_for_manual_gui_test"])
self.assertFalse(self.result["installation_performed"])
self.assertIn("pygobject_gi_available", self.result["missing_requirements"])
def test_source_and_no_device_addon_are_present(self):
checks = self.result["checks"]
self.assertTrue(checks["pinned_source_present"])
self.assertTrue(checks["application_entry_present"])
self.assertTrue(checks["no_device_addon_present"])
def test_result_records_the_requested_runtime_probe(self):
self.assertIn("No module named 'gi'", self.result["observed_launch_error"])
if __name__ == "__main__":
unittest.main()