mirror of
https://pagure.io/fm-orchestrator.git
synced 2026-04-02 10:20:31 +08:00
Handle when a message parser returns None
mbs-messaging-umb is such a parser that returns None if a message does not match the schema it is validating against.
This commit is contained in:
@@ -128,6 +128,8 @@ class MBSConsumer(fedmsg.consumers.FedmsgConsumer):
|
||||
super(MBSConsumer, self).validate(message)
|
||||
|
||||
def validate_event(self, event):
|
||||
if event is None:
|
||||
raise IgnoreMessage("Ignoring the message since it is null")
|
||||
# task_id is required for koji_build_change event
|
||||
if event["event"] == "koji_build_change" and event["task_id"] is None:
|
||||
raise IgnoreMessage(
|
||||
|
||||
@@ -3,7 +3,9 @@
|
||||
from __future__ import absolute_import
|
||||
|
||||
from mock import patch, MagicMock
|
||||
import pytest
|
||||
|
||||
from module_build_service.common.errors import IgnoreMessage
|
||||
from module_build_service.scheduler import events
|
||||
from module_build_service.scheduler.consumer import MBSConsumer
|
||||
|
||||
@@ -102,3 +104,9 @@ class TestConsumer:
|
||||
consumer.get_abstracted_event_info.return_value = event
|
||||
consumer.consume({})
|
||||
assert process_message.call_count == 0
|
||||
|
||||
def test_validate_event_none_msg(self):
|
||||
hub = MagicMock(config={})
|
||||
consumer = MBSConsumer(hub)
|
||||
with pytest.raises(IgnoreMessage):
|
||||
consumer.validate_event(None)
|
||||
|
||||
Reference in New Issue
Block a user