|
| 1 | +import unittest |
| 2 | +from pathlib import Path |
| 3 | + |
| 4 | +ROOT = Path(__file__).parents[1] |
| 5 | +QML = ROOT / "src/settings.qml" |
| 6 | + |
| 7 | + |
| 8 | +class SettingsBehaviorMigrationTests(unittest.TestCase): |
| 9 | + def test_controller_is_installed(self): |
| 10 | + text = QML.read_text(encoding="utf-8") |
| 11 | + self.assertIn("// SETTINGS_BEHAVIOR_CONTROLLER_V1", text) |
| 12 | + self.assertIn("id: settingsBehavior", text) |
| 13 | + |
| 14 | + def test_generic_setters_delegate_to_controller(self): |
| 15 | + text = QML.read_text(encoding="utf-8") |
| 16 | + self.assertIn("settingsBehavior.setSettingValue(entry, value)", text) |
| 17 | + self.assertIn("settingsBehavior.setVirtualSelection(entry, index)", text) |
| 18 | + |
| 19 | + def test_restart_policy_defaults_to_legacy_behavior(self): |
| 20 | + text = QML.read_text(encoding="utf-8") |
| 21 | + self.assertIn("entry.restartRequired === undefined ? true", text) |
| 22 | + self.assertIn("window.settings_restart_to_apply = true", text) |
| 23 | + |
| 24 | + def test_legacy_controls_are_not_mass_rewritten(self): |
| 25 | + text = QML.read_text(encoding="utf-8") |
| 26 | + # Representative legacy direct writes intentionally remain in place. |
| 27 | + self.assertIn("settings.weight =", text) |
| 28 | + self.assertIn("settings.ftp =", text) |
| 29 | + |
| 30 | + |
| 31 | +if __name__ == "__main__": |
| 32 | + unittest.main() |
0 commit comments