def test_allow_build_true_global(self, handler_build_whitelist,
                                     builds_signed, advisories_from_event):
        """
        Tests that allow_build does not filter out advisories based on
        advisory_name.
        """
        advisories_from_event.return_value = [
            ErrataAdvisory(123, "RHSA-2017", "REL_PREP", ["rpm"])]
        builds_signed.return_value = False

        event = MagicMock()
        handler = GenerateAdvisorySignedEventOnRPMSign()
        handler.handle(event)

        builds_signed.assert_called_once()
    def test_allow_build_false(self, handler_build_whitelist, builds_signed,
                               advisories_from_event):
        """
        Tests that allow_build filters out advisories based on advisory_name.
        """
        advisories_from_event.return_value = [
            ErrataAdvisory(123, "RHBA-2017", "REL_PREP", ["rpm"])]
        builds_signed.return_value = False

        event = MagicMock()
        handler = GenerateAdvisorySignedEventOnRPMSign()
        ret = handler.handle(event)

        self.assertTrue(not ret)
        builds_signed.assert_not_called()
    def test_allow_security_impact_important_false(
            self, handler_build_whitelist, builds_signed,
            advisories_from_event):
        """
        Tests that allow_build dost filter out advisories based on
        advisory_security_impact.
        """
        advisories_from_event.return_value = [
            ErrataAdvisory(123, "RHSA-2017", "REL_PREP", ["rpm"], "None")]
        builds_signed.return_value = False

        event = MagicMock()
        handler = GenerateAdvisorySignedEventOnRPMSign()
        handler.handle(event)

        builds_signed.assert_not_called()
    def test_return_value(self, handler_build_whitelist, builds_signed,
                          advisories_from_event):
        """
        Tests that handle method returns ErrataAdvisoryRPMsSignedEvent.
        """
        advisories_from_event.return_value = [
            ErrataAdvisory(123, "RHSA-2017", "REL_PREP", ["rpm"])]
        builds_signed.return_value = True

        event = MagicMock()
        event.msg_id = "msg_123"
        handler = GenerateAdvisorySignedEventOnRPMSign()
        ret = handler.handle(event)

        self.assertTrue(len(ret), 1)
        self.assertEqual(ret[0].advisory.name, "RHSA-2017")
        self.assertEqual(ret[0].advisory.errata_id, 123)
    def test_do_not_create_already_handled_event(
            self, handler_build_whitelist, builds_signed,
            advisories_from_event):
        """
        Tests that GenerateAdvisorySignedEventOnRPMSign don't return Event which already exists
        in Freshmaker DB.
        """
        builds_signed.return_value = True
        advisories_from_event.return_value = [
            ErrataAdvisory(123, "RHSA-2017", "REL_PREP", ["rpm"])]

        event = MagicMock()
        event.msg_id = "msg_123"
        handler = GenerateAdvisorySignedEventOnRPMSign()
        handler.handle(event)

        builds_signed.assert_called_once()
        builds_signed.reset_mock()

        handler.handle(event)
        builds_signed.assert_not_called()