~lutostag/ubuntu/trusty/maas/1.5.4+keystone

« back to all changes in this revision

Viewing changes to src/maasserver/tests/test_messages.py

  • Committer: Package Import Robot
  • Author(s): Andres Rodriguez
  • Date: 2012-03-27 14:49:56 UTC
  • mto: (20.1.1 quantal) (1.2.1)
  • mto: This revision was merged to the branch mainline in revision 9.
  • Revision ID: package-import@ubuntu.com-20120327144956-z5stunhc83bnnwsi
Tags: upstream-0.1+bzr363+dfsg
ImportĀ upstreamĀ versionĀ 0.1+bzr363+dfsg

Show diffs side-by-side

added added

removed removed

Lines of Context:
12
12
__all__ = []
13
13
 
14
14
import json
 
15
import socket
15
16
 
 
17
from maasserver.exceptions import NoRabbit
16
18
from maasserver.messages import (
17
19
    MAASMessenger,
18
20
    MESSENGER_EVENT,
97
99
        self.assertEqual(
98
100
            [[MESSENGER_EVENT.DELETED, obj]], producer.messages)
99
101
 
 
102
    def test_publish_message_publishes_message(self):
 
103
        event = factory.getRandomString()
 
104
        instance = {factory.getRandomString(): factory.getRandomString()}
 
105
        messenger = TestMessenger(MessagesTestModel, FakeProducer())
 
106
        messenger.publish_message(messenger.create_msg(event, instance))
 
107
        self.assertEqual([[event, instance]], messenger.producer.messages)
 
108
 
 
109
    def test_publish_message_swallows_missing_rabbit(self):
 
110
        event = factory.getRandomString()
 
111
        instance = {factory.getRandomString(): factory.getRandomString()}
 
112
 
 
113
        def fail_for_lack_of_rabbit(*args, **kwargs):
 
114
            raise NoRabbit("I'm pretending not to have a RabbitMQ.")
 
115
 
 
116
        messenger = TestMessenger(MessagesTestModel, FakeProducer())
 
117
        messenger.producer.publish = fail_for_lack_of_rabbit
 
118
 
 
119
        messenger.publish_message(messenger.create_msg(event, instance))
 
120
        self.assertEqual([], messenger.producer.messages)
 
121
 
 
122
    def test_publish_message_propagates_exceptions(self):
 
123
        event = factory.getRandomString()
 
124
        instance = {factory.getRandomString(): factory.getRandomString()}
 
125
 
 
126
        def fail_despite_having_a_rabbit(*args, **kwargs):
 
127
            raise socket.error("I have a rabbit but I fail anyway.")
 
128
 
 
129
        messenger = TestMessenger(MessagesTestModel, FakeProducer())
 
130
        messenger.producer.publish = fail_despite_having_a_rabbit
 
131
 
 
132
        self.assertRaises(
 
133
            socket.error,
 
134
            messenger.publish_message, messenger.create_msg(event, instance))
 
135
        self.assertEqual([], messenger.producer.messages)
 
136
 
100
137
 
101
138
class MAASMessengerTest(TestModelTestCase):
102
139