def test_dupes(self): """ Test for two duplicate paths. """ paths = ["a/b", "PULP_MANIFEST", "PULP_MANIFEST"] with self.assertRaisesRegex(ValueError, "Path is duplicated: PULP_MANIFEST"): validate_file_paths(paths)
def test_valid_paths(self): """ Test for valid paths. """ paths = ["a/b", "a/c/b", "PULP_MANIFEST", "b"] validate_file_paths(paths) paths = ["a/b/c", "a/b/d"] validate_file_paths(paths)
def test_valid_paths(self): """ Test for valid paths. """ paths = ['a/b', 'a/c/b', 'PULP_MANIFEST', 'b'] validate_file_paths(paths) paths = ['a/b/c', 'a/b/d'] validate_file_paths(paths)
def validate_version_paths(version): """ Validate artifact relative paths for dupes or overlap (e.g. a/b and a/b/c). Raises: ValueError: If two artifact relative paths overlap """ paths = ContentArtifact.objects.filter(content__pk__in=version.content).values_list( "relative_path", flat=True ) try: validate_file_paths(paths) except ValueError as e: raise ValueError(_("Repository version errors : {err}").format(err=e))
def validate_publication_paths(publication): """ Validate artifact relative paths for dupes or overlap (e.g. a/b and a/b/c). Raises: ValueError: If two artifact relative paths are dupes or overlap """ paths = list( publication.published_artifact.values_list("relative_path", flat=True)) if publication.pass_through: paths += ContentArtifact.objects.filter( content__pk__in=publication.repository_version.content ).values_list("relative_path", flat=True) try: validate_file_paths(paths) except ValueError as e: raise ValueError(_("Cannot create publication. {err}.").format(err=e))
def test_overlaps(self): """ Test for overlapping paths. """ paths = ["a/b", "a/b/c"] with self.assertRaises(ValueError): validate_file_paths(paths) paths = ["a/b/c", "a/b"] with self.assertRaises(ValueError): validate_file_paths(paths) paths = ["b/c", "a/b", "b"] with self.assertRaises(ValueError): validate_file_paths(paths) paths = ["a/b/c/d", "a/b"] with self.assertRaises(ValueError): validate_file_paths(paths) paths = ["a/b", "a/b/c/d"] with self.assertRaises(ValueError): validate_file_paths(paths)
def test_overlaps(self): """ Test for overlapping paths. """ paths = ['a/b', 'a/b/c'] with self.assertRaises(ValueError): validate_file_paths(paths) paths = ['a/b/c', 'a/b'] with self.assertRaises(ValueError): validate_file_paths(paths) paths = ['b/c', 'a/b', 'b'] with self.assertRaises(ValueError): validate_file_paths(paths) paths = ['a/b/c/d', 'a/b'] with self.assertRaises(ValueError): validate_file_paths(paths) paths = ['a/b', 'a/b/c/d'] with self.assertRaises(ValueError): validate_file_paths(paths)