From 0d9c760b4f9546574d4768f43e70dad3b933c920 Mon Sep 17 00:00:00 2001 From: Jan Kaluza Date: Jul 09 2018 08:51:06 +0000 Subject: Check for 'has_hightouch_bug' in whitelist. --- diff --git a/freshmaker/handlers/errata/errata_advisory_rpms_signed.py b/freshmaker/handlers/errata/errata_advisory_rpms_signed.py index 09ebe23..837d743 100644 --- a/freshmaker/handlers/errata/errata_advisory_rpms_signed.py +++ b/freshmaker/handlers/errata/errata_advisory_rpms_signed.py @@ -98,6 +98,7 @@ class ErrataAdvisoryRPMsSignedHandler(ContainerBuildHandler): advisory_security_impact=event.advisory.security_impact, advisory_highest_cve_severity=event.advisory.highest_cve_severity, advisory_product_short_name=event.advisory.product_short_name, + advisory_has_hightouch_bug=event.advisory.has_hightouch_bug, dry_run=self.dry_run): msg = ("Errata advisory {0} is not allowed by internal policy " "to trigger rebuilds.".format(event.advisory.errata_id)) @@ -647,6 +648,7 @@ class ErrataAdvisoryRPMsSignedHandler(ContainerBuildHandler): advisory_security_impact=self.event.advisory.security_impact, advisory_highest_cve_severity=self.event.advisory.highest_cve_severity, advisory_product_short_name=self.event.advisory.product_short_name, + advisory_has_hightouch_bug=self.event.advisory.has_hightouch_bug, published=True, dry_run=self.dry_run): published = True release_category = "Generally Available" diff --git a/tests/test_errata_advisory_rpms_signed_handler.py b/tests/test_errata_advisory_rpms_signed_handler.py index 86f0b32..b1bc836 100644 --- a/tests/test_errata_advisory_rpms_signed_handler.py +++ b/tests/test_errata_advisory_rpms_signed_handler.py @@ -265,6 +265,35 @@ class TestErrataAdvisoryRPMsSignedHandler(helpers.ModelsTestCase): @patch.object(freshmaker.conf, 'handler_build_whitelist', new={ 'ErrataAdvisoryRPMsSignedHandler': { + 'image': { + 'advisory_has_hightouch_bug': True, + } + } + }) + @patch.object(freshmaker.conf, 'dry_run', new=True) + def test_allow_build_has_hightouch_bug(self): + compose_4 = Compose(odcs_compose_id=4) + db.session.add(compose_4) + db.session.commit() + + for has_hightouch_bug in [False, True]: + self.rhba_event.advisory.has_hightouch_bug = has_hightouch_bug + self.mock_find_images_to_rebuild.return_value = [[]] + handler = ErrataAdvisoryRPMsSignedHandler() + handler.handle(self.rhba_event) + + db_event = Event.get(db.session, message_id='123') + self.assertEqual(db_event.state, EventState.SKIPPED.value) + if not has_hightouch_bug: + self.assertTrue(db_event.state_reason.endswith( + "is not allowed by internal policy to trigger rebuilds.")) + else: + self.assertEqual( + db_event.state_reason, + "No container images to rebuild for advisory 'RHBA-2017'") + + @patch.object(freshmaker.conf, 'handler_build_whitelist', new={ + 'ErrataAdvisoryRPMsSignedHandler': { 'image': {'advisory_name': 'RHBA-2017'} } })