Esempio n. 1
0
    def basic_fixtures(self, flush=True):
        """
        Add Arch, OpSys, OpSysRelease and OpSysComponent fixtures

        Store as self.arch_noarch, self_opsys_fedora, self.release_19,
        self.comp_kernel, ...
        """

        for arch_name in Init.archs:
            arch = Arch(name=arch_name)
            self.db.session.add(arch)
            setattr(self, "arch_{0}".format(arch_name), arch)

        centos_sys = OpSys(name="CentOS")
        self.db.session.add(centos_sys)

        self.opsys_centos = centos_sys

        releases = []
        versions = ["6.7", "6.8", "7.1", "7.2", "7.3", "7.7"]
        for ver in versions:
            rel = OpSysRelease(opsys=centos_sys, version=ver, status="ACTIVE")

            releases.append(rel)
            self.db.session.add(rel)
            setattr(self, "release_{0}".format(ver), rel)

        sys = OpSys(name="Fedora")
        self.db.session.add(sys)

        self.opsys_fedora = sys

        releases = []
        for ver in range(17, 21):
            rel = OpSysRelease(opsys=sys, version=ver, status="ACTIVE")
            releases.append(rel)
            self.db.session.add(rel)
            setattr(self, "release_{0}".format(ver), rel)

        for cname in [
                "faf", "systemd", "kernel", "ibus-table", "eclipse",
                "will-crash", "ibus-table-ruby", "xorg-x11-drv-nouveau"
        ]:

            comp = OpSysComponent(opsys=sys, name=cname)
            self.db.session.add(comp)

            comp = OpSysComponent(opsys=centos_sys, name=cname)
            self.db.session.add(comp)

            setattr(self, "comp_{0}".format(cname), comp)

            for rel in releases:
                rcomp = OpSysReleaseComponent(release=rel, component=comp)
                self.db.session.add(rcomp)

        if flush:
            self.db.session.flush()
Esempio n. 2
0
    def opsysreleases(self):
        self.begin("Releases")
        for opsysname, releases in data.OPSYS.items():
            opsysobj = OpSys(name=opsysname)
            relobjs = []
            for rel in releases:
                relobjs.append(OpSysRelease(version=rel[0], releasedate=rel[1], status="ACTIVE"))

            opsysobj.releases = relobjs
            self.add(opsysobj)
        self.commit()
Esempio n. 3
0
    def opsysreleases(self):
        self.begin('Releases')
        for opsysname, releases in data.OPSYS.items():
            opsysobj = OpSys(name=opsysname)
            relobjs = []
            for rel in releases:
                relobjs.append(OpSysRelease(version=rel[0],
                                            releasedate=rel[1],
                                            status='ACTIVE'))

            opsysobj.releases = relobjs
            self.add(opsysobj)
        self.commit()
Esempio n. 4
0
    def run(self, cmdline, db):
        opsys = get_opsys_by_name(db, cmdline.NAME)

        if opsys:
            self.log_error("Operating system '{0}' already defined"
                           .format(cmdline.NAME))
            return 1

        self.log_info("Adding operating system '{0}'".format(cmdline.NAME))

        new = OpSys()
        new.name = cmdline.NAME
        db.session.add(new)
        db.session.flush()
Esempio n. 5
0
    def run(self, cmdline, db):
        opsys = get_opsys_by_name(db, cmdline.NAME)

        if opsys:
            self.log_error("Operating system '{0}' already defined".format(
                cmdline.NAME))
            return 1

        self.log_info("Adding operating system '{0}'".format(cmdline.NAME))

        new = OpSys()
        new.name = cmdline.NAME
        db.session.add(new)
        db.session.flush()
Esempio n. 6
0
    def test_get_packages_and_their_reports_unknown_packages(self):
        """
        """

        # add required stuff to db
        arch = Arch()
        arch.name = "noarch"
        self.db.session.add(arch)

        arch1 = Arch()
        arch1.name = "x86_64"
        self.db.session.add(arch1)

        build = Build()
        build.base_package_name = "sample"
        build.version = "1"
        build.release = "1"
        build.epoch = "0"
        self.db.session.add(build)

        pkg = Package()
        pkg.name = "sample"
        pkg.pkgtype = "rpm"
        pkg.arch = arch
        pkg.build = build
        self.db.session.add(pkg)
        #print(pkg.nevra())

        #different arch
        pkg2 = Package()
        pkg2.name = "sample"
        pkg2.pkgtype = "rpm"
        pkg2.arch = arch1
        pkg2.build = build
        self.db.session.add(pkg2)
        #print(pkg2.nevra())

        build2 = Build()
        build2.base_package_name = "sample"
        build2.version = "1"
        build2.release = "2"
        build2.epoch = "0"
        self.db.session.add(build2)

        pkg3 = Package()
        pkg3.name = "sample"
        pkg3.pkgtype = "rpm"
        pkg3.arch = arch
        pkg3.build = build2
        self.db.session.add(pkg3)
        #print(pkg3.nevra())

        problem = Problem()
        self.db.session.add(problem)

        opsys = OpSys()
        opsys.name = "Fedora"
        self.db.session.add(opsys)

        opsys_component = OpSysComponent()
        opsys_component.name = "core"
        opsys_component.opsys = opsys
        self.db.session.add(opsys_component)

        report = Report()
        report.type = "type"
        report.count = 2
        report.problem = problem
        report.component = opsys_component
        self.db.session.add(report)

        report_unknown = ReportUnknownPackage()
        report_unknown.report = report
        report_unknown.name = pkg.name
        report_unknown.epoch = pkg.build.epoch
        report_unknown.version = pkg.build.version
        report_unknown.release = pkg.build.release
        report_unknown.arch = pkg.arch
        report_unknown.count = 1
        self.db.session.add(report_unknown)

        report_unknown2 = ReportUnknownPackage()
        report_unknown2.report = report
        report_unknown2.name = pkg2.name
        report_unknown2.epoch = pkg2.build.epoch
        report_unknown2.version = pkg2.build.version
        report_unknown2.release = pkg2.build.release
        report_unknown2.arch = pkg2.arch
        report_unknown2.count = 1
        self.db.session.add(report_unknown2)

        report_unknown3 = ReportUnknownPackage()
        report_unknown3.report = report
        report_unknown3.name = "nonsense"
        report_unknown3.epoch = pkg.build.epoch
        report_unknown3.version = pkg.build.version
        report_unknown3.release = pkg.build.release
        report_unknown3.arch = pkg.arch
        report_unknown3.count = 1
        self.db.session.add(report_unknown3)

        self.db.session.flush()

        packages_and_their_reports_unknown_packages = \
            get_packages_and_their_reports_unknown_packages(self.db).all()
        self.assertEqual(len(packages_and_their_reports_unknown_packages), 2)
        self.assertIn((pkg, report_unknown),
                      packages_and_their_reports_unknown_packages)
        self.assertIn((pkg2, report_unknown2),
                      packages_and_their_reports_unknown_packages)
Esempio n. 7
0
    def test_get_packages_and_their_reports_unknown_packages(self):
        """
        """

        # add required stuff to db
        arch = Arch()
        arch.name = "noarch"
        self.db.session.add(arch)

        arch1 = Arch()
        arch1.name = "x86_64"
        self.db.session.add(arch1)

        build = Build()
        build.base_package_name = "sample"
        build.version = "1"
        build.release = "1"
        build.epoch = "0"
        self.db.session.add(build)

        pkg = Package()
        pkg.name = "sample"
        pkg.pkgtype = "rpm"
        pkg.arch = arch
        pkg.build = build
        self.db.session.add(pkg)
        #print(pkg.nevra())

        #different arch
        pkg2 = Package()
        pkg2.name = "sample"
        pkg2.pkgtype = "rpm"
        pkg2.arch = arch1
        pkg2.build = build
        self.db.session.add(pkg2)
        #print(pkg2.nevra())

        build2 = Build()
        build2.base_package_name = "sample"
        build2.version = "1"
        build2.release = "2"
        build2.epoch = "0"
        self.db.session.add(build2)

        pkg3 = Package()
        pkg3.name = "sample"
        pkg3.pkgtype = "rpm"
        pkg3.arch = arch
        pkg3.build = build2
        self.db.session.add(pkg3)
        #print(pkg3.nevra())

        problem = Problem()
        self.db.session.add(problem)

        opsys = OpSys()
        opsys.name = "Fedora"
        self.db.session.add(opsys)

        opsys_component = OpSysComponent()
        opsys_component.name = "core"
        opsys_component.opsys = opsys
        self.db.session.add(opsys_component)

        report = Report()
        report.type = "type"
        report.count = 2
        report.problem = problem
        report.component = opsys_component
        self.db.session.add(report)

        report_unknown = ReportUnknownPackage()
        report_unknown.report = report
        report_unknown.name = pkg.name
        report_unknown.epoch = pkg.build.epoch
        report_unknown.version = pkg.build.version
        report_unknown.release = pkg.build.release
        report_unknown.arch = pkg.arch
        report_unknown.count = 1
        self.db.session.add(report_unknown)

        report_unknown2 = ReportUnknownPackage()
        report_unknown2.report = report
        report_unknown2.name = pkg2.name
        report_unknown2.epoch = pkg2.build.epoch
        report_unknown2.version = pkg2.build.version
        report_unknown2.release = pkg2.build.release
        report_unknown2.arch = pkg2.arch
        report_unknown2.count = 1
        self.db.session.add(report_unknown2)

        report_unknown3 = ReportUnknownPackage()
        report_unknown3.report = report
        report_unknown3.name = "nonsense"
        report_unknown3.epoch = pkg.build.epoch
        report_unknown3.version = pkg.build.version
        report_unknown3.release = pkg.build.release
        report_unknown3.arch = pkg.arch
        report_unknown3.count = 1
        self.db.session.add(report_unknown3)

        self.db.session.flush()

        packages_and_their_reports_unknown_packages = \
            get_packages_and_their_reports_unknown_packages(self.db).all()
        self.assertEqual(len(packages_and_their_reports_unknown_packages), 2)
        self.assertIn(
            (pkg, report_unknown), packages_and_their_reports_unknown_packages)
        self.assertIn(
            (pkg2, report_unknown2), packages_and_their_reports_unknown_packages)