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()
def opsyscomponents(self): self.begin('Components') opsysobjs = self.ses.query(OpSys).all() for comp in data.COMPS.keys(): for obj in opsysobjs: if randutils.tosslow(): continue compobj = OpSysComponent(name=comp) compobj.opsys = obj for release in randutils.pickmost(obj.releases): release_assoc = OpSysReleaseComponent() release_assoc.release = release compobj.opsysreleases.append(release_assoc) self.add(compobj) self.commit()
def opsyscomponents(self): self.begin('Components') opsysobjs = self.ses.query(OpSys).all() for comp in data.COMPS: for obj in opsysobjs: if randutils.tosslow(): continue compobj = OpSysComponent(name=comp) compobj.opsys = obj for release in randutils.pickmost(obj.releases): release_assoc = OpSysReleaseComponent() release_assoc.release = release compobj.opsysreleases.append(release_assoc) self.add(compobj) self.commit()
def opsyscomponents(self) -> None: self.begin('Components') opsysobjs = self.ses.query(OpSys).all() for comp in data.COMPS: for obj in opsysobjs: if randutils.tosslow(): continue compobj = OpSysComponent(name=comp) compobj.opsys = obj for release in randutils.pickmost(obj.releases): release_assoc = OpSysReleaseComponent() release_assoc.release = release # OpSysComponent.releases is a backref from OpSysReleaseComponent. compobj.releases.append(release_assoc) # pylint: disable=no-member self.add(compobj) self.commit()
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)
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)