def freeze(self, deps): """ Return a new Recipe with full module and package NEVRA :param deps: A list of dependency NEVRA to use to fill in the modules and packages :type deps: list( :returns: A new Recipe object :rtype: Recipe """ module_names = self.module_names package_names = self.package_names group_names = self.group_names new_modules = [] new_packages = [] new_groups = [] for dep in deps: if dep["name"] in package_names: new_packages.append(RecipePackage(dep["name"], dep_evra(dep))) elif dep["name"] in module_names: new_modules.append(RecipeModule(dep["name"], dep_evra(dep))) elif dep["name"] in group_names: new_groups.append(RecipeGroup(dep["name"])) if "customizations" in self: customizations = self["customizations"] else: customizations = None if "repos" in self and "git" in self["repos"]: gitrepos = self["repos"]["git"] else: gitrepos = None return Recipe(self["name"], self["description"], self["version"], new_modules, new_packages, new_groups, customizations, gitrepos)
def test_dep_evra_with_epoch_not_zero(self): dep = {"arch": "x86_64", "epoch": 2, "name": "tog-pegasus-libs", "release": "3.el7", "version": "2.14.1"} self.assertEqual(dep_evra(dep), "2:2.14.1-3.el7.x86_64")
def test_dep_evra(self): dep = {"arch": "noarch", "epoch": 0, "name": "basesystem", "release": "7.el7", "version": "10.0"} self.assertEqual(dep_evra(dep), "10.0-7.el7.noarch")