Rework radar system

This commit is contained in:
Ayzen
2026-10-06 12:32:26 +03:00
parent 552cdc688a
commit 5bb86b7165
299 changed files with 13537 additions and 27763 deletions
+11 -34
View File
@@ -20,46 +20,23 @@ from python_app.tests.gui_test_support import isolated_window
_app: QApplication | None = None
_window: AppWindow | None = None
# mode -> (checkbox, speed field) attributes of its page
_PAGES = {
"gpr": ("_gpr_ignore_socket_speed_enabled", "_gpr_speed_m_s"),
"legacy_gpr": ("_legacy_gpr_ignore_socket_speed_enabled", "_legacy_gpr_speed_m_s"),
"sar3d": ("_sar3d_ignore_socket_speed_enabled", "_sar3d_speed_m_s"),
}
def setUpModule() -> None:
global _app, _window
_app = QApplication.instance() or QApplication([])
instance = QApplication.instance()
_app = instance if isinstance(instance, QApplication) else QApplication([])
_window = isolated_window(unittest.addModuleCleanup)
def tearDownModule() -> None:
if _window is not None:
_window.close()
class SocketSpeedControlsTest(unittest.TestCase):
def test_speed_field_is_editable_only_while_the_socket_is_ignored(self) -> None:
def test_socket_authority_controls_editability_and_published_speed(self) -> None:
assert _window is not None
for mode, (checkbox_name, speed_name) in _PAGES.items():
checkbox, speed = getattr(_window, checkbox_name), getattr(_window, speed_name)
section = _window._view.processing
for mode, (checkbox, speed) in zip(("gpr", "legacy_gpr", "sar3d"), section.speed_controls, strict=True):
section.mode.setCurrentText(mode)
speed.setValue(1.25)
for ignore in (True, False):
checkbox.setChecked(ignore)
self.assertEqual(speed.isEnabled(), ignore, msg=f"{mode}, ignore={ignore}")
def test_live_config_takes_the_active_page(self) -> None:
assert _window is not None
for mode, (checkbox_name, speed_name) in _PAGES.items():
_window._set_combo_current_text(_window._processing_mode, mode)
getattr(_window, checkbox_name).setChecked(True)
getattr(_window, speed_name).setValue(1.25)
config = _window._live_processing_config()
self.assertTrue(config.ignore_socket_speed, msg=mode)
self.assertAlmostEqual(config.gpr_speed_m_s, 1.25, msg=mode)
getattr(_window, checkbox_name).setChecked(False)
self.assertFalse(_window._live_processing_config().ignore_socket_speed, msg=mode)
if __name__ == "__main__":
unittest.main()
self.assertEqual(speed.isEnabled(), ignore, msg=mode)
config = _window._live.build()
self.assertEqual(config.ignore_socket_speed, ignore, msg=mode)
self.assertAlmostEqual(config.gpr_speed_m_s, 1.25, msg=mode)