def test_get_and_verify_blocking_bugs(self): bv = BugValidator(self.runtime_fixture()) bv.product = "OpenShift Container Platform" bv.target_releases = ['4.4.0', '4.4.z'] bugs = bzutil.get_bugs(bv.bzapi, [1875258, 1878798, 1881212, 1869790, 1840719]) bbf = bv._get_blocking_bugs_for(list(bugs.values())) self.assertTrue(bbf[1875258], "CVE tracker with blocking bug") self.assertTrue(any(bug.id == 1875259 for bug in bbf[1875258]), "1875259 blocks 1875258") self.assertTrue(bbf[1878798], "regular bug with blocking bug") self.assertTrue(any(bug.id == 1872337 for bug in bbf[1878798]), "1872337 blocks 1878798") self.assertFalse(bbf[1881212], "placeholder bug w/o blocking") self.assertTrue(bbf[1869790], "bug with several blocking bugs, one DUPLICATE") self.assertTrue(any(bug.id == 1868735 for bug in bbf[1869790]), "DUPLICATE 1868735 blocks 1869790") self.assertTrue(all(bug.id != 1868158 for bug in bbf[1869790]), "4.6 1868158 blocks 1869790") self.assertFalse(bbf[1840719], "bug with 4.6 blocking bug") # having acquired these bugs, might as well use them to test verification bv._verify_blocking_bugs(bbf) self.assertIn( "Regression possible: bug 1869790 is a backport of bug 1868735 which was CLOSED WONTFIX", bv.problems) for bug in [1875258, 1878798, 1881212, 1840719]: self.assertFalse( any(str(bug) in problem for problem in bv.problems), f"{bug} blocker status {bbf[bug]}")
def test_get_attached_filtered_bugs_problems(self): # Create event loop loop = asyncio.get_event_loop() # Initialize validator bv = BugValidator(self.runtime_fixture()) bv.product = "OpenShift Container Platform" bv.target_releases = ['4.5.0', '4.5.z'] # Login with errata tool loop.run_until_complete(bv.errata_api.login()) # Get attached bugs result = loop.run_until_complete(bv.get_attached_bugs([60089])) self.assertTrue(result, "Should find attached bugs") advisory_bugs = result[60089] # Filter bugs by release and product bv.filter_bugs_by_release(advisory_bugs, True) bv.filter_bugs_by_product(advisory_bugs) # Check validation problems self.assertTrue(bv.problems, "Should find version mismatch") self.assertTrue(any("1858981" in problem for problem in bv.problems), "Should find version mismatch for 1858981")
def test_get_attached_filtered_bugs(self): # Create event loop loop = asyncio.get_event_loop() # Initialize validator bv = BugValidator(self.runtime_fixture()) bv.product = "OpenShift Container Platform" bv.target_releases = ['4.5.0', '4.5.z'] # Login with errata tool loop.run_until_complete(bv.errata_api.login()) # Get attached bugs result = loop.run_until_complete(bv.get_attached_bugs([60089])) self.assertTrue(result, "Should find attached bugs") advisory_bugs = result[60089] # Filter bugs by release and product bugs = bv.filter_bugs_by_release(advisory_bugs) bugs = bv.filter_bugs_by_product(bugs) bug_ids = {bug.id for bug in bugs} # Check filtered bug IDs self.assertIn(1856529, bug_ids) # security tracker self.assertNotIn(1858981, bug_ids) # flaw bug
def test_get_and_verify_blocking_bugs(self): bv = BugValidator(self.runtime_fixture()) bv.product = "OpenShift Container Platform" bv.target_releases = ['4.4.0', '4.4.z'] bugs = bv.bug_tracker.get_bugs( [1875258, 1878798, 1881212, 1869790, 1840719]) bug_blocking_map = bv._get_blocking_bugs_for(bugs) id_bug_map = {b.id: b for b in bug_blocking_map} bbf = lambda bugid: bug_blocking_map[id_bug_map[bugid]] self.assertTrue(bbf(1875258), "CVE tracker with blocking bug") self.assertTrue(any(bug.id == 1875259 for bug in bbf(1875258)), "1875259 blocks 1875258") self.assertTrue(bbf(1878798), "regular bug with blocking bug") self.assertTrue(any(bug.id == 1872337 for bug in bbf(1878798)), "1872337 blocks 1878798") self.assertFalse(bbf(1881212), "placeholder bug w/o blocking") self.assertTrue(bbf(1869790), "bug with several blocking bugs, one DUPLICATE") self.assertTrue(any(bug.id == 1868735 for bug in bbf(1869790)), "DUPLICATE 1868735 blocks 1869790") self.assertTrue(all(bug.id != 1868158 for bug in bbf(1869790)), "4.6 1868158 blocks 1869790") self.assertFalse(bbf(1840719), "bug with 4.6 blocking bug") # having acquired these bugs, might as well use them to test verification bv._verify_blocking_bugs(bug_blocking_map) self.assertIn( "Regression possible: CLOSED bug 1869790 is a backport of bug 1881143 which was CLOSED WONTFIX", bv.problems) for bugid in [1875258, 1878798, 1881212, 1840719]: self.assertFalse( any(str(bugid) in problem for problem in bv.problems), f"{bugid} blocker status {bbf(bugid)}")
def test_get_attached_filtered_bugs_problems(self): bv = BugValidator(self.runtime_fixture()) bv.product = "OpenShift Container Platform" bv.target_releases = ['4.6.0', '4.6.z'] bv._get_attached_filtered_bugs([60089]) # SHIPPED_LIVE RHSA self.assertTrue(bv.problems, "Should find version mismatch") self.assertTrue(any("1856529" in problem for problem in bv.problems), "Should find version mismatch for 1856529")
def test_get_attached_filtered_bugs(self): bv = BugValidator(self.runtime_fixture()) bv.product = "OpenShift Container Platform" bv.target_releases = ['4.5.0', '4.5.z'] bugs = {bug.id for bug in bv._get_attached_filtered_bugs([60089]) } # SHIPPED_LIVE RHSA self.assertIn(1856529, bugs) # security tracker self.assertNotIn(1858981, bugs) # flaw bug self.assertFalse(bv.problems, "There should be no problems")