Introduce pluggable backends.

This allows an operator to write a custom messaging backend to handle
whatever transport and format.
This commit is contained in:
Ralph Bean
2017-09-19 13:09:07 -04:00
parent 1f077a12ea
commit 5e08d2ffe4
6 changed files with 92 additions and 156 deletions

View File

@@ -23,9 +23,9 @@
import unittest
from module_build_service import messaging
from module_build_service.messaging import KojiRepoChange
from mock import patch, PropertyMock
class TestFedmsgMessaging(unittest.TestCase):
def test_buildsys_state_change(self):
@@ -48,8 +48,7 @@ class TestFedmsgMessaging(unittest.TestCase):
'topic': 'org.fedoraproject.prod.buildsys.build.state.change'
}
topic = 'org.fedoraproject.prod.buildsys.build.state.change'
msg = messaging.BaseMessage.from_fedmsg(topic, buildsys_state_change_msg)
msg = messaging.FedmsgMessageParser().parse(buildsys_state_change_msg)
self.assertEqual(msg.build_id, 614503)
self.assertEqual(msg.build_new_state, 1)
@@ -78,8 +77,7 @@ class TestFedmsgMessaging(unittest.TestCase):
'username': 'copr'
}
topic = 'org.fedoraproject.prod.copr.build.end'
msg = messaging.BaseMessage.from_fedmsg(topic, copr_build_end_msg)
msg = messaging.FedmsgMessageParser().parse(copr_build_end_msg)
self.assertIsInstance(msg, messaging.KojiBuildChange)
self.assertEqual(msg.msg_id, '2013-b05a323d-37ee-4396-9635-7b5dfaf5441b')
self.assertEqual(msg.build_id, 100)
@@ -110,8 +108,7 @@ class TestFedmsgMessaging(unittest.TestCase):
'topic': 'org.fedoraproject.prod.buildsys.tag'
}
topic = 'org.fedoraproject.prod.buildsys.tag'
msg = messaging.BaseMessage.from_fedmsg(topic, buildsys_tag_msg)
msg = messaging.FedmsgMessageParser().parse(buildsys_tag_msg)
self.assertEqual(msg.tag, "module-debugging-tools-master-20170405115403-build")
self.assertEqual(msg.artifact, "module-build-macros")
@@ -130,7 +127,6 @@ class TestFedmsgMessaging(unittest.TestCase):
'topic': 'org.fedoraproject.prod.buildsys.repo.done'
}
topic = 'org.fedoraproject.prod.buildsys.repo.done'
msg = messaging.BaseMessage.from_fedmsg(topic, buildsys_tag_msg)
msg = messaging.FedmsgMessageParser().parse(buildsys_tag_msg)
self.assertEqual(msg.repo_tag, "module-f0f7e44f3c6cccab-build")

View File

@@ -72,6 +72,8 @@ class TestConsumer(unittest.TestCase):
hub = MagicMock(config={})
consumer = MBSConsumer(hub)
msg = {
"topic": "org.fedoraproject.prod.buildsys.repo.done",
"headers": {},
"body": {
"username": "apache",
"source_name": "datanommer",