コード例 #1
0
ファイル: make_rename_plan.py プロジェクト: goc9000/baon
    def _check_case_insensitive_sources_destinations(self):
        key_getter = lambda path: ([component.lower() for component in path.components], path)

        source_paths = sets_union([f.old_file_ref.path.subpaths(exclude_root=True) for f in self.renamed_files])
        for path_a, path_b in pairwise(sorted(source_paths, key=key_getter)):
            if path_a.equals_ignore_case(path_b):
                raise CaseInsensitiveConflictInSourcePathsError(path_a.path_text(), path_b.path_text())

        destination_paths = sets_union([f.path.subpaths(exclude_root=True) for f in self.renamed_files])
        for path_a, path_b in pairwise(sorted(destination_paths, key=key_getter)):
            if path_a.equals_ignore_case(path_b):
                raise CaseInsensitiveConflictInDestinationPathsError(path_a.path_text(), path_b.path_text())
コード例 #2
0
    def verify_reported_progress(self):
        progress_events = []

        collector = lambda progress_info: progress_events.append(progress_info)
        yield collector

        self.assertTrue(len(progress_events) > 0, 'No progress events received')

        first_non_indeterminate = next(filter(lambda event: not event.is_indeterminate(), progress_events), None)
        if first_non_indeterminate is not None:
            self.assertEqual(first_non_indeterminate.done, 0)

        for a, b in pairwise(progress_events):
            if a.is_indeterminate():
                self.assertTrue(b.is_indeterminate() or b.is_complete())
            elif not b.is_indeterminate():
                self.assertGreaterEqual(b.done, a.done)
                self.assertGreaterEqual(b.total, a.total)

        last_event = progress_events[-1]
        self.assertTrue(last_event.is_indeterminate() or last_event.is_complete())