def _test_make_rename_plan(
        self,
        renamed_files_repr,
        expected_result,
        actual_files=None,
        base_path_override=None,
        case_insensitive_override=None,
    ):
        base_path = self.resolve_test_path('' if base_path_override is None else base_path_override)
        test_root = self.resolve_test_path('')

        renamed_files = [
            RenamedFileReference.from_test_repr(file_repr, base_path)
            for file_repr in _normalize_input_files(renamed_files_repr)
        ]

        if actual_files is None:
            actual_files_repr = [file_ref.old_file_ref.test_repr() for file_ref in renamed_files]
        else:
            actual_files_repr = _normalize_input_files(actual_files)

        with self.temp_file_structure('', actual_files_repr):
            try:
                plan = make_rename_plan(renamed_files, case_insensitive_filesystem=case_insensitive_override)
                result = plan.test_repr()
            except MakeRenamePlanError as e:
                result = e.test_repr()

            self.assertEquals(
                _normalize_actual_result(result, test_root),
                _normalize_expected_result(expected_result),
            )
示例#2
0
    def _recompute_async_impl(self, check_abort, renamed_files, start_planning):
        self._on_async_progress(ProgressInfo.make_indeterminate())

        rename_plan = make_rename_plan(renamed_files)

        save_rename_plan_backup(rename_plan)

        try:
            rename_plan.execute(self._on_async_progress)
        finally:
            delete_rename_plan_backup()

        return True