summaryrefslogtreecommitdiff
path: root/ceilometer/tests/alarm/test_rpc.py
diff options
context:
space:
mode:
Diffstat (limited to 'ceilometer/tests/alarm/test_rpc.py')
-rw-r--r--ceilometer/tests/alarm/test_rpc.py86
1 files changed, 47 insertions, 39 deletions
diff --git a/ceilometer/tests/alarm/test_rpc.py b/ceilometer/tests/alarm/test_rpc.py
index 792b6b24..d798c4e2 100644
--- a/ceilometer/tests/alarm/test_rpc.py
+++ b/ceilometer/tests/alarm/test_rpc.py
@@ -22,26 +22,27 @@ from ceilometerclient.v2 import alarms
import mock
from ceilometer.alarm import rpc as rpc_alarm
-from ceilometer.openstack.common.fixture import config
+from ceilometer import messaging
from ceilometer.openstack.common.fixture import mockpatch
-from ceilometer.openstack.common import rpc
from ceilometer.openstack.common import test
from ceilometer.openstack.common import timeutils
from ceilometer.storage import models
class TestRPCAlarmNotifier(test.BaseTestCase):
- def fake_cast(self, context, topic, msg):
- self.notified.append((topic, msg))
- self.CONF = self.useFixture(config.Config()).conf
+ def fake_cast(self, context, method, **args):
+ self.notified.append((method, args))
def setUp(self):
super(TestRPCAlarmNotifier, self).setUp()
+ messaging.setup('fake://')
+ self.addCleanup(messaging.cleanup)
+
self.notified = []
+ self.notifier = rpc_alarm.RPCAlarmNotifier()
self.useFixture(mockpatch.PatchObject(
- rpc, 'cast',
+ self.notifier.client, 'cast',
side_effect=self.fake_cast))
- self.notifier = rpc_alarm.RPCAlarmNotifier()
self.alarms = [
alarms.Alarm(None, info={
'name': 'instance_running_hot',
@@ -77,6 +78,10 @@ class TestRPCAlarmNotifier(test.BaseTestCase):
}),
]
+ def test_rpc_target(self):
+ topic = self.notifier.client.target.topic
+ self.assertEqual('alarm_notifier', topic)
+
def test_notify_alarm(self):
previous = ['alarm', 'ok']
for i, a in enumerate(self.alarms):
@@ -85,25 +90,22 @@ class TestRPCAlarmNotifier(test.BaseTestCase):
self.assertEqual(2, len(self.notified))
for i, a in enumerate(self.alarms):
actions = getattr(a, models.Alarm.ALARM_ACTIONS_MAP[a.state])
- self.assertEqual(self.CONF.alarm.notifier_rpc_topic,
- self.notified[i][0])
+ self.assertEqual('notify_alarm', self.notified[i][0])
self.assertEqual(self.alarms[i].alarm_id,
- self.notified[i][1]["args"]["data"]["alarm_id"])
- self.assertEqual(actions,
- self.notified[i][1]["args"]["data"]["actions"])
+ self.notified[i][1]["data"]["alarm_id"])
+ self.assertEqual(actions, self.notified[i][1]["data"]["actions"])
self.assertEqual(previous[i],
- self.notified[i][1]["args"]["data"]["previous"])
+ self.notified[i][1]["data"]["previous"])
self.assertEqual(self.alarms[i].state,
- self.notified[i][1]["args"]["data"]["current"])
+ self.notified[i][1]["data"]["current"])
self.assertEqual("what? %d" % i,
- self.notified[i][1]["args"]["data"]["reason"])
- self.assertEqual(
- {'fire': '%d' % i},
- self.notified[i][1]["args"]["data"]["reason_data"])
+ self.notified[i][1]["data"]["reason"])
+ self.assertEqual({'fire': '%d' % i},
+ self.notified[i][1]["data"]["reason_data"])
def test_notify_non_string_reason(self):
self.notifier.notify(self.alarms[0], 'ok', 42, {})
- reason = self.notified[0][1]['args']['data']['reason']
+ reason = self.notified[0][1]['data']['reason']
self.assertIsInstance(reason, basestring)
def test_notify_no_actions(self):
@@ -128,42 +130,48 @@ class TestRPCAlarmNotifier(test.BaseTestCase):
class TestRPCAlarmPartitionCoordination(test.BaseTestCase):
- def fake_fanout_cast(self, context, topic, msg):
- self.notified.append((topic, msg))
+ def fake_fanout_cast(self, context, method, **args):
+ self.notified.append((method, args))
+
+ def fake_prepare(self, fanout):
+ self.assertTrue(fanout)
+ cctxt = mock.Mock()
+ cctxt.cast.side_effect = self.fake_fanout_cast
+ return cctxt
def setUp(self):
super(TestRPCAlarmPartitionCoordination, self).setUp()
+ messaging.setup('fake://')
+ self.addCleanup(messaging.cleanup)
+
self.notified = []
- self.useFixture(mockpatch.PatchObject(
- rpc, 'fanout_cast',
- side_effect=self.fake_fanout_cast))
self.ordination = rpc_alarm.RPCAlarmPartitionCoordination()
+ self.useFixture(mockpatch.PatchObject(
+ self.ordination.client, 'prepare',
+ side_effect=self.fake_prepare))
self.alarms = [mock.MagicMock(), mock.MagicMock()]
def test_ordination_presence(self):
id = uuid.uuid4()
priority = float(timeutils.utcnow().strftime('%s.%f'))
self.ordination.presence(id, priority)
- topic, msg = self.notified[0]
- self.assertEqual('alarm_partition_coordination', topic)
- self.assertEqual(id, msg['args']['data']['uuid'])
- self.assertEqual(priority, msg['args']['data']['priority'])
- self.assertEqual('presence', msg['method'])
+ method, args = self.notified[0]
+ self.assertEqual(id, args['data']['uuid'])
+ self.assertEqual(priority, args['data']['priority'])
+ self.assertEqual('presence', method)
def test_ordination_assign(self):
id = uuid.uuid4()
self.ordination.assign(id, self.alarms)
- topic, msg = self.notified[0]
- self.assertEqual('alarm_partition_coordination', topic)
- self.assertEqual(id, msg['args']['data']['uuid'])
- self.assertEqual(2, len(msg['args']['data']['alarms']))
- self.assertEqual('assign', msg['method'])
+ method, args = self.notified[0]
+ self.assertEqual(id, args['data']['uuid'])
+ self.assertEqual(2, len(args['data']['alarms']))
+ self.assertEqual('assign', method)
def test_ordination_allocate(self):
id = uuid.uuid4()
self.ordination.allocate(id, self.alarms)
- topic, msg = self.notified[0]
- self.assertEqual('alarm_partition_coordination', topic)
- self.assertEqual(id, msg['args']['data']['uuid'])
- self.assertEqual(2, len(msg['args']['data']['alarms']))
- self.assertEqual('allocate', msg['method'])
+ method, args = self.notified[0]
+ self.assertEqual(id, args['data']['uuid'])
+ self.assertEqual(2, len(args['data']['alarms']))
+ self.assertEqual('allocate', method)