Refaire session.
This commit is contained in:
@@ -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("n’est 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")
|
||||
|
||||
Reference in New Issue
Block a user