From d43b030acb0bbb69b3c067ee22b7472860413870 Mon Sep 17 00:00:00 2001 From: Jan Kaluza Date: Sep 29 2017 14:30:30 +0000 Subject: Skip non-rpm content in the advisory when handling it. --- diff --git a/freshmaker/handlers/errata/errata_advisory_rpms_signed.py b/freshmaker/handlers/errata/errata_advisory_rpms_signed.py index ad19a0a..403a818 100644 --- a/freshmaker/handlers/errata/errata_advisory_rpms_signed.py +++ b/freshmaker/handlers/errata/errata_advisory_rpms_signed.py @@ -394,9 +394,12 @@ class ErrataAdvisoryRPMsSignedHandler(BaseHandler): builds = builds or {} nvrs = errata.get_builds(errata_id) for nvr in nvrs: - srpm_name = self._find_build_srpm_name(nvr) - batches = lb.find_images_to_rebuild(srpm_name, content_sets) - builds = self._record_batches(batches, event, builds) + if nvr.endswith(".rpm"): + srpm_name = self._find_build_srpm_name(nvr) + batches = lb.find_images_to_rebuild(srpm_name, content_sets) + builds = self._record_batches(batches, event, builds) + else: + log.info("Skipping unsupported Errata build type: %s.", nvr) return builds def _find_build_srpm_name(self, build_nvr): diff --git a/tests/test_errata_advisory_state_changed.py b/tests/test_errata_advisory_state_changed.py index b9c1cea..b7a5411 100644 --- a/tests/test_errata_advisory_state_changed.py +++ b/tests/test_errata_advisory_state_changed.py @@ -421,6 +421,38 @@ class TestPrepareYumRepo(unittest.TestCase): repo_url) +class TestFindAndRecordImagesToRebuild(unittest.TestCase): + def setup(self): + db.session.remove() + db.drop_all() + db.create_all() + db.session.commit() + + def tearDown(self): + db.session.remove() + db.drop_all() + db.session.commit() + + @patch('freshmaker.handlers.errata.errata_advisory_rpms_signed.Errata') + @patch('freshmaker.handlers.errata.errata_advisory_rpms_signed.Pulp') + @patch('freshmaker.handlers.errata.errata_advisory_rpms_signed.LightBlue') + def test_find_and_record_images_to_rebuild_non_rpm_content( + self, lb, pulp, errata): + """ + Tests that _find_and_record_images_to_rebuild is not called for + non-rpm content. + """ + errata.return_value.get_builds.return_value = set(["httpd-2.4.15-1.f27.tar.gz"]) + + db_event = Mock(message_id='msg-id', search_key=12345) + event = Mock() + + handler = ErrataAdvisoryRPMsSignedHandler() + ret = handler._find_and_record_images_to_rebuild(db_event, event) + lb.find_images_to_rebuild.assert_not_called() + self.assertEqual(ret, {}) + + class TestFindEventsToInclude(unittest.TestCase): """Test ErrataAdvisoryRPMsSignedHandler._find_events_to_include"""