def are_submodules_valid(self): """Test that all submodule URLs are valid.""" repo = git.Repo(self.working_dir) for submodule in repo.submodules: try: validate_submodule_url(submodule.url) except ValidationError: return False return True
def are_submodules_valid(self): """Test that all submodule URLs are valid.""" repo = git.Repo(self.working_dir) for submodule in repo.submodules: try: validate_submodule_url(submodule.url) except ValidationError: return False return True
def validate_submodules(self, config): """ Returns the submodules and check that its URLs are valid. .. note:: Allways call after `self.are_submodules_available`. :returns: tuple(bool, list) Returns `True` if all required submodules URLs are valid. Returns a list of all required submodules: - Include is `ALL`, returns all submodules avaliable. - Include is a list, returns just those. - Exclude is `ALL` - this should never happen. - Exlude is a list, returns all avaliable submodules but those from the list. Returns `False` if at least one submodule is invalid. Returns the list of invalid submodules. """ repo = git.Repo(self.working_dir) submodules = { sub.path: sub for sub in repo.submodules } for sub_path in config.submodules.exclude: path = sub_path.rstrip('/') if path in submodules: del submodules[path] if config.submodules.include != ALL and config.submodules.include: submodules_include = {} for sub_path in config.submodules.include: path = sub_path.rstrip('/') submodules_include[path] = submodules[path] submodules = submodules_include invalid_submodules = [] for path, submodule in submodules.items(): try: validate_submodule_url(submodule.url) except ValidationError: invalid_submodules.append(path) if invalid_submodules: return False, invalid_submodules return True, submodules.keys()
def validate_submodules(self, config): """ Returns the submodules and check that its URLs are valid. .. note:: Allways call after `self.are_submodules_available`. :returns: tuple(bool, list) Returns `True` if all required submodules URLs are valid. Returns a list of all required submodules: - Include is `ALL`, returns all submodules avaliable. - Include is a list, returns just those. - Exclude is `ALL` - this should never happen. - Exlude is a list, returns all avaliable submodules but those from the list. Returns `False` if at least one submodule is invalid. Returns the list of invalid submodules. """ repo = git.Repo(self.working_dir) submodules = {sub.path: sub for sub in repo.submodules} for sub_path in config.submodules.exclude: path = sub_path.rstrip('/') if path in submodules: del submodules[path] if config.submodules.include != ALL and config.submodules.include: submodules_include = {} for sub_path in config.submodules.include: path = sub_path.rstrip('/') submodules_include[path] = submodules[path] submodules = submodules_include invalid_submodules = [] for path, submodule in submodules.items(): try: validate_submodule_url(submodule.url) except ValidationError: invalid_submodules.append(path) if invalid_submodules: return False, invalid_submodules return True, submodules.keys()