def _file_provided_by(self, file): find_owner = FileOwner(early_out=True) packages = find_owner([file]) if packages: package = packages[0][0] name = package.category + '/' + package.name p = Package(name) p.category = package.category return p return None
def _file_provided_by(self, file): """Returns name of package which provides given file""" ts = rpm.TransactionSet() db = ts.dbMatch("basenames", file) if db.count() == 0: return None pkg = next(db) p = Package(pkg[rpm.RPMTAG_NAME].decode()) p.category = pkg[rpm.RPMTAG_GROUP].decode() return p
def test_helper(self): processes = [ ProcessMock(2, "foo", 1234, ["file1", "file2"]), ProcessMock(3, "foo", 5678, ["file2", "file3"]), ] package = Package("foopackage") package.modified = None package.description = "Foo package description" package.category = "categ" package.files = ["file1", "file2"] a1 = AffectedProcessMock(2) a1.packages = set([package]) affected_by = [a1] view = HelperView(self.out) view.assign("args", ArgsMock(verbose=2)) view.assign("processes", processes) view.assign("application", Applications.find("foo")) view.assign("package", package) view.assign("affected_by", affected_by) view.assign("affects", None) view.render() self.assertEquals(self.out.getvalue(), ( "* foo\n" " Package: foopackage\n" " Description: Foo package description\n" " Type: Application\n" " State: foo has been started by None some-time ago. PID - 2\n" " foo has been started by None some-time ago. PID - 3\n" "\n" " Affected by:\n" " foopackage\n" " file1\n" " file2\n" ))
def test_helper(self): processes = [ ProcessMock(2, "foo", 1234, ["file1", "file2"]), ProcessMock(3, "foo", 5678, ["file2", "file3"]), ] package = Package("foopackage") package.modified = None package.description = "Foo package description" package.category = "categ" package.files = ["file1", "file2"] a1 = AffectedProcessMock(2) a1.packages = set([package]) affected_by = [a1] view = HelperView(self.out) view.assign("args", ArgsMock(verbose=2)) view.assign("processes", processes) view.assign("application", Applications.find("foo")) view.assign("package", package) view.assign("affected_by", affected_by) view.assign("affects", None) view.render() self.assertEquals(self.out.getvalue(), ( "* foo\n" " Package: foopackage\n" " Description: Foo package description\n" " Type: Application\n" " State: foo has been started by None some-time ago. PID - 2\n" " foo has been started by None some-time ago. PID - 3\n" "\n" " Affected by:\n" " foopackage\n" " file1\n" " file2\n"))