1- import pyray as rl
2- rl .set_config_flags (rl .ConfigFlags .FLAG_WINDOW_HIDDEN )
31import gc
42import weakref
53import pytest
6- from openpilot .system .ui .lib .application import gui_app
7- from openpilot .system .ui .widgets import Widget
8-
9- # mici dialogs
10- from openpilot .selfdrive .ui .mici .layouts .onboarding import TrainingGuide as MiciTrainingGuide , OnboardingWindow as MiciOnboardingWindow
11- from openpilot .selfdrive .ui .mici .onroad .driver_camera_dialog import DriverCameraDialog as MiciDriverCameraDialog
12- from openpilot .selfdrive .ui .mici .widgets .pairing_dialog import PairingDialog as MiciPairingDialog
13- from openpilot .selfdrive .ui .mici .widgets .dialog import BigDialog , BigConfirmationDialog , BigInputDialog
14- from openpilot .selfdrive .ui .mici .layouts .settings .device import MiciFccModal
15-
16- # tici dialogs
17- from openpilot .selfdrive .ui .onroad .driver_camera_dialog import DriverCameraDialog as TiciDriverCameraDialog
18- from openpilot .selfdrive .ui .layouts .onboarding import OnboardingWindow as TiciOnboardingWindow
19- from openpilot .selfdrive .ui .widgets .pairing_dialog import PairingDialog as TiciPairingDialog
20- from openpilot .system .ui .widgets .confirm_dialog import ConfirmDialog
21- from openpilot .system .ui .widgets .option_dialog import MultiOptionDialog
22- from openpilot .system .ui .widgets .html_render import HtmlModal
23- from openpilot .system .ui .widgets .keyboard import Keyboard
244
255# FIXME: known small leaks not worth worrying about at the moment
266KNOWN_LEAKS = {
5232}
5333
5434
55- def get_child_widgets (widget : Widget ) -> list [Widget ]:
35+ def get_child_widgets (widget ) -> list :
36+ from openpilot .system .ui .widgets import Widget
5637 children = []
5738 for val in widget .__dict__ .values ():
5839 items = val if isinstance (val , (list , tuple )) else (val ,)
@@ -62,6 +43,26 @@ def get_child_widgets(widget: Widget) -> list[Widget]:
6243
6344@pytest .mark .skip (reason = "segfaults" )
6445def test_dialogs_do_not_leak ():
46+ import pyray as rl
47+ rl .set_config_flags (rl .ConfigFlags .FLAG_WINDOW_HIDDEN )
48+ from openpilot .system .ui .lib .application import gui_app
49+
50+ # mici dialogs
51+ from openpilot .selfdrive .ui .mici .layouts .onboarding import TrainingGuide as MiciTrainingGuide , OnboardingWindow as MiciOnboardingWindow
52+ from openpilot .selfdrive .ui .mici .onroad .driver_camera_dialog import DriverCameraDialog as MiciDriverCameraDialog
53+ from openpilot .selfdrive .ui .mici .widgets .pairing_dialog import PairingDialog as MiciPairingDialog
54+ from openpilot .selfdrive .ui .mici .widgets .dialog import BigDialog , BigConfirmationDialog , BigInputDialog
55+ from openpilot .selfdrive .ui .mici .layouts .settings .device import MiciFccModal
56+
57+ # tici dialogs
58+ from openpilot .selfdrive .ui .onroad .driver_camera_dialog import DriverCameraDialog as TiciDriverCameraDialog
59+ from openpilot .selfdrive .ui .layouts .onboarding import OnboardingWindow as TiciOnboardingWindow
60+ from openpilot .selfdrive .ui .widgets .pairing_dialog import PairingDialog as TiciPairingDialog
61+ from openpilot .system .ui .widgets .confirm_dialog import ConfirmDialog
62+ from openpilot .system .ui .widgets .option_dialog import MultiOptionDialog
63+ from openpilot .system .ui .widgets .html_render import HtmlModal
64+ from openpilot .system .ui .widgets .keyboard import Keyboard
65+
6566 gui_app .init_window ("ref-test" )
6667
6768 leaked_widgets = set ()
0 commit comments