def setUpClass(self): # Create 2 repositories with rpmfluff self.repo1_dir = tempfile.mkdtemp(prefix="lorax.test.repo.") makeFakeRPM(self.repo1_dir, "anaconda-core", 0, "0.0.1", "1") makeFakeRPM(self.repo1_dir, "exact", 0, "1.3.17", "1") makeFakeRPM(self.repo1_dir, "fake-milhouse", 0, "1.0.0", "1", ["/fake-milhouse/1.0.0-1"]) makeFakeRPM(self.repo1_dir, "fake-bart", 0, "1.0.0", "6") makeFakeRPM(self.repo1_dir, "fake-bart", 2, "1.13.0", "6") makeFakeRPM(self.repo1_dir, "fake-bart", 2, "2.3.0", "1") makeFakeRPM(self.repo1_dir, "fake-homer", 0, "0.4.0", "2") makeFakeRPM(self.repo1_dir, "lots-of-files", 0, "0.1.1", "1", [ "/lorax-files/file-one.txt", "/lorax-files/file-two.txt", "/lorax-files/file-three.txt" ]) makeFakeRPM(self.repo1_dir, "known-path", 0, "0.1.8", "1", ["/known-path/file-one.txt"]) os.system("createrepo_c " + self.repo1_dir) self.repo2_dir = tempfile.mkdtemp(prefix="lorax.test.repo.") makeFakeRPM(self.repo2_dir, "fake-milhouse", 0, "1.0.0", "4", ["/fake-milhouse/1.0.0-4"]) makeFakeRPM(self.repo2_dir, "fake-milhouse", 0, "1.0.7", "1", ["/fake-milhouse/1.0.7-1"]) makeFakeRPM(self.repo2_dir, "fake-milhouse", 0, "1.3.0", "1", ["/fake-milhouse/1.3.0-1"]) makeFakeRPM(self.repo2_dir, "fake-lisa", 0, "1.2.0", "1", ["/fake-lisa/1.2.0-1"]) makeFakeRPM(self.repo2_dir, "fake-lisa", 0, "1.1.4", "5", ["/fake-lisa/1.1.4-5"]) os.system("createrepo_c " + self.repo2_dir) self.repo3_dir = tempfile.mkdtemp(prefix="lorax.test.debug.repo.") makeFakeRPM(self.repo3_dir, "fake-marge", 0, "2.3.0", "1", ["/fake-marge/2.3.0-1"]) makeFakeRPM(self.repo3_dir, "fake-marge-debuginfo", 0, "2.3.0", "1", ["/fake-marge/file-one-debuginfo.txt"]) os.system("createrepo_c " + self.repo3_dir) # Get a dbo with just these repos # Setup a template runner self.root_dir = tempfile.mkdtemp(prefix="lorax.test.repo.") sources = [ "file://" + self.repo1_dir, "file://" + self.repo2_dir, "file://" + self.repo3_dir ] self.dnfbase = get_dnf_base_object(self.root_dir, sources, enablerepos=[], disablerepos=[]) self.runner = LoraxTemplateRunner( inroot=self.root_dir, outroot=self.root_dir, dbo=self.dnfbase, templatedir="./tests/pylorax/templates")
def install_branding(self, repo_dir, variant=None, skip_branding=False): """Run the get_branding function in a test repo""" with tempfile.TemporaryDirectory(prefix="lorax.test.") as root_dir: dbo = get_dnf_base_object(root_dir, ["file://"+repo_dir], enablerepos=[], disablerepos=[]) self.assertTrue(dbo is not None) product = DataHolder(name="Fedora", version="33", release="33", variant=variant, bugurl="http://none", isfinal=True) arch = ArchData(os.uname().machine) rb = RuntimeBuilder(product, arch, dbo, skip_branding=skip_branding) return rb._branding
def install_branding(self, repo_dir, variant=None, skip_branding=False): """Run the _install_branding and return the names of the installed packages""" with tempfile.TemporaryDirectory(prefix="lorax.test.") as root_dir: dbo = get_dnf_base_object(root_dir, ["file://"+repo_dir], enablerepos=[], disablerepos=[]) self.assertTrue(dbo is not None) product = DataHolder(name="Fedora", version="33", release="33", variant=variant, bugurl="http://none", isfinal=True) arch = ArchData(os.uname().machine) rb = RuntimeBuilder(product, arch, dbo, skip_branding=skip_branding) rb._install_branding() dbo.resolve() self.assertTrue(dbo.transaction is not None) return sorted(p.name for p in dbo.transaction.install_set)