Пример #1
0
    def start_recovery_failure(self, parent=None):
        """
        This function will start the recovery failure view and should be invoked upon a failure to recover
        :return: False if it was a failure, True if it was a successful recovery or starting mantid normally.
        """
        if self.current_view is not None:
            raise RuntimeError("Project Recovery: A view is already open")

        # Reset whether model believes recovery has been started.
        rows = self.model.rows
        if len(rows) == 0:
            return True
        self.model = ProjectRecoveryModel(self.project_recovery, self)
        self._set_checkpoint_tried_values_from_rows(rows)

        try:
            self.current_view = RecoveryFailureView(self, parent)
            self.current_view.exec_()
        except Exception as e:
            if isinstance(e, KeyboardInterrupt):
                raise
            return False

        # If start mantid normally has been clicked we want to cancel recovery attempts
        if self.start_mantid_normally_called:
            return True

        # If run has failed and recovery is not running then start the recovery GUI
        if self.model.has_failed_run:
            return False

        return True
Пример #2
0
    def __init__(self, project_recovery, model=None):
        self.model = model if model else ProjectRecoveryModel(project_recovery, self)
        self.current_view = None

        self.project_recovery = project_recovery

        self.start_mantid_normally_called = False
        self.allow_start_mantid_normally = True
        self.open_selected_in_editor_selected = False
Пример #3
0
    def setUp(self):
        self.pr = ProjectRecovery(multifileinterpreter=None)

        # Make absolutely sure that the workbench-recovery directory is cleared.
        if os.path.exists(self.pr.recovery_directory):
            shutil.rmtree(self.pr.recovery_directory)

        # Set up some checkpoints
        self.setup_some_checkpoints()

        self.pr._make_process_from_pid = mock.MagicMock()
        self.pr._is_mantid_workbench_process = mock.MagicMock(
            return_value=True)
        self.prm = ProjectRecoveryModel(self.pr, mock.MagicMock())