Example #1
0
    def from_test_repr(file_test_repr, base_path=None):
        assert is_arrayish(file_test_repr)
        assert len(file_test_repr) >= 2

        file_type, old_path, *remainder = file_test_repr

        old_file_ref = FileReference(
            BAONPath.from_test_repr(base_path, old_path),
            file_type == 'DIR',
        )

        new_path = old_path
        override = False

        if len(remainder) > 0 and remainder[-1] == 'OVERRIDE':
            remainder = remainder[:-1]
            override = True

        if len(remainder) > 0 and not is_arrayish(remainder[0]):
            new_path, *remainder = remainder

        return RenamedFileReference(
            old_file_ref,
            BAONPath.from_test_repr(base_path, new_path),
            [BAONError.from_test_repr(error_repr) for error_repr in remainder],
            override,
        )
Example #2
0
def convert_raw_overrides(raw_overrides, base_path):
    """Converts a dict of str->str to a dict of BAONPath->BAONPath"""

    return {
        BAONPath.from_path_text(base_path, path_from): BAONPath.from_path_text(base_path, path_to)
        for path_from, path_to in raw_overrides.items()
    }
Example #3
0
    def _check_renamed_files_list(self):
        BAONPath.assert_all_compatible(*(renamed_fref.path for renamed_fref in self.renamed_files))

        if any(renamed_fref.has_errors() for renamed_fref in self.renamed_files):
            raise RenamedFilesListHasErrorsError()

        self._check_case_sensitive_sources_destinations()

        if self.case_insensitive_filesystem:
            self._check_case_insensitive_sources_destinations()
Example #4
0
    def from_test_repr(file_test_repr, base_path=None):
        assert is_arrayish(file_test_repr)
        assert len(file_test_repr) >= 2

        file_type, path, *errors = file_test_repr

        assert file_type in ['FILE', 'DIR']

        file_ref = FileReference(
            BAONPath.from_test_repr(base_path, path),
            file_type == 'DIR',
            problems=[BAONError.from_test_repr(error_repr) for error_repr in errors],
        )

        return file_ref