コード例 #1
0
ファイル: test_ltmpl.py プロジェクト: tagoh/lorax
    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")
コード例 #2
0
ファイル: test_treebuilder.py プロジェクト: zhoupeng/lorax
    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
コード例 #3
0
ファイル: test_treebuilder.py プロジェクト: whot/lorax
    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)