def test_New(self): controller = PluginController() controller._previous_save_path = Path("some/path") initial_project_manager = controller._project_manager initial_project_path_handler = controller._project_path_handler controller._New() # make sure things were cleaned properly self.assertIsNone(controller._previous_save_path) self.assertIsNot(initial_project_manager, controller._project_manager) self.assertIsNot(initial_project_path_handler, controller._project_path_handler)
def test_Save_failed(self, mock_save_study, mock_version): project_dir = Path("controller_save_project_failed.ksp") controller = PluginController() controller._previous_save_path = project_dir with patch.object(controller._project_path_handler, 'GetSavePath', return_value=project_dir) as patch_fct_get_save_path: with patch.object(controller._project_manager, 'SaveProject', return_value=False) as patch_fct_save_proj: with self.assertLogs('kratos_salome_plugin.gui.plugin_controller', level='INFO') as cm: controller._Save() self.assertEqual(len(cm.output), 2) self.assertEqual(cm.output[0], 'INFO:kratos_salome_plugin.gui.plugin_controller:Saving project with previous save path ...') self.assertEqual(cm.output[1], 'CRITICAL:kratos_salome_plugin.gui.plugin_controller:Failed to save project under "{}"!'.format(project_dir)) self.assertEqual(patch_fct_get_save_path.call_count, 0) self.assertEqual(patch_fct_save_proj.call_count, 1) self.assertFalse(project_dir.is_dir()) self.assertEqual(controller._previous_save_path, project_dir)
def test_Save_second_save(self, mock_save_study, mock_version): project_dir = Path("controller_save_project_second.ksp") self.addCleanup(lambda: DeleteDirectoryIfExisting(project_dir)) DeleteDirectoryIfExisting(project_dir) # remove potential leftovers controller = PluginController() controller._previous_save_path = project_dir with patch.object(controller._main_window, 'StatusBarInfo') as patch_fct_status_bar: with patch.object(controller._project_path_handler, 'GetSavePath', return_value=project_dir) as patch_fct: with self.assertLogs('kratos_salome_plugin.gui.plugin_controller', level='INFO') as cm: controller._Save() self.assertEqual(len(cm.output), 2) self.assertEqual(cm.output[0], 'INFO:kratos_salome_plugin.gui.plugin_controller:Saving project with previous save path ...') self.assertEqual(cm.output[1], 'INFO:kratos_salome_plugin.gui.plugin_controller:Saved project under "{}"'.format(project_dir)) self.assertEqual(patch_fct_status_bar.call_count, 1) self.assertEqual(patch_fct.call_count, 0) # should not be called as previous save path is used self.assertTrue(project_dir.is_dir()) self.assertEqual(controller._previous_save_path, project_dir)