Refaire session.

This commit is contained in:
2026-09-06 19:20:51 +02:00
parent 2ff1a9b7b9
commit 2313d51a62
8 changed files with 469 additions and 10 deletions
+43
View File
@@ -194,6 +194,49 @@ class RefaireGuiTests(unittest.TestCase):
[self.root / "Sol", self.root / "Persp"],
)
def test_restart_actions_warn_reset_and_preserve_or_clear_selection(self):
self.save_selection()
self.app.state_store.update_step("refaire_merge", status="success")
self.app.state_store.update_step("annotation", status="success")
selection = read_json(self.root / "refaire.json")
with patch(
"copienator_gui.app.messagebox.askyesno", return_value=False
) as confirm:
self.app._start_refaire_pass(False)
self.assertIn("importé", confirm.call_args.args[1])
self.assertIn("Mettre à jour", confirm.call_args.args[1])
self.assertEqual(read_json(self.root / "refaire.json"), selection)
with patch("copienator_gui.app.messagebox.askyesno", return_value=True):
self.app._start_refaire_pass(True)
self.app.update()
self.assertEqual(self.app.current_step.id, "refaire_selection")
self.assertEqual(self.app.refaire_panel.values()["selection"], selection)
self.assertIsNone(self.app.state_store.step("refaire_merge").get("status"))
self.assertEqual(self.app.state_store.step("annotation")["status"], "success")
first = self.app.state_store.workspace.refaire_session_id
with patch(
"copienator_gui.app.messagebox.askyesno", return_value=True
) as confirm:
self.app._start_refaire_pass(False)
self.app.update()
self.assertIn("nest pas marquée comme fusionnée", confirm.call_args.args[1])
self.assertEqual(self.app.refaire_panel.entries, {})
self.assertEqual(read_json(self.root / "refaire.json"), [])
self.assertNotEqual(self.app.state_store.workspace.refaire_session_id, first)
self.assertEqual(self.app.refaire_panel.source_var.get(), "Anot")
def test_restart_is_blocked_while_a_command_is_active(self):
self.save_selection()
self.app.active_step_id = "refaire_correct"
with (
patch("copienator_gui.app.messagebox.showwarning") as warning,
patch("copienator_gui.app.messagebox.askyesno") as confirm,
):
self.app._start_refaire_pass(False)
warning.assert_called_once()
confirm.assert_not_called()
self.assertIsNone(self.app.state_store.workspace.refaire_session_id)
def test_small_window_keeps_selection_accessible_by_scrolling(self):
self.select("refaire_selection")
self.app.geometry("900x640")