Added test for _update_alarm
- Provided _update_alarm and alarm_not_updated test. Change-Id: I476fcb3503357b4dfac5ef741494032cc0fc6090 Closes-Bug: #1669814
This commit is contained in:
parent
3b88d50820
commit
e2ce9e8ffd
@ -187,6 +187,86 @@ class TestPlugin(unittest.TestCase):
|
|||||||
# reset post method
|
# reset post method
|
||||||
_update_or_create_alarm.reset_mock()
|
_update_or_create_alarm.reset_mock()
|
||||||
|
|
||||||
|
@mock.patch.object(sender.Sender, '_get_alarm_id', autospec=True)
|
||||||
|
@mock.patch.object(requests, 'put', spec=callable)
|
||||||
|
@mock.patch.object(base, 'Meter', autospec=True)
|
||||||
|
@mock.patch.object(sender, 'ClientV3', autospec=True)
|
||||||
|
@mock_collectd()
|
||||||
|
@mock_config()
|
||||||
|
def test_update_alarm(self, config, collectd, ClientV3,
|
||||||
|
meter, put, _get_alarm_id):
|
||||||
|
"""Test the update alarm function.
|
||||||
|
|
||||||
|
Set-up: create a sender object and get an alarm-id for it
|
||||||
|
Test: update an alarm when there is an alarm-id and when there isn't
|
||||||
|
Expected behaviour:
|
||||||
|
- If alarm-id present a put/update request is called
|
||||||
|
"""
|
||||||
|
auth_client = ClientV3.return_value
|
||||||
|
auth_client.get_service_endpoint.return_value = \
|
||||||
|
'https://test-aodh.tld'
|
||||||
|
|
||||||
|
# init instance
|
||||||
|
instance = sender.Sender()
|
||||||
|
|
||||||
|
# init values to send
|
||||||
|
_get_alarm_id.return_value = 'my-alarm-id'
|
||||||
|
message = meter.message.return_value
|
||||||
|
metername = meter.meter_name.return_value
|
||||||
|
severity = meter.severity.return_value
|
||||||
|
rid = meter.resource_id.return_value
|
||||||
|
|
||||||
|
# send the values
|
||||||
|
instance.send(metername, severity, rid, message)
|
||||||
|
|
||||||
|
# update the alarm
|
||||||
|
put.assert_called_once_with(
|
||||||
|
'https://test-aodh.tld' +
|
||||||
|
'/v2/alarms/my-alarm-id/state',
|
||||||
|
data='"insufficient data"',
|
||||||
|
headers={'Content-type': 'application/json',
|
||||||
|
'X-Auth-Token': auth_client.auth_token},
|
||||||
|
timeout=1.0)
|
||||||
|
|
||||||
|
# reset method
|
||||||
|
put.reset_mock()
|
||||||
|
|
||||||
|
@mock.patch.object(sender.Sender, '_create_alarm', autospec=True)
|
||||||
|
@mock.patch.object(sender.Sender, '_get_alarm_id', autospec=True)
|
||||||
|
@mock.patch.object(requests, 'put', spec=callable)
|
||||||
|
@mock.patch.object(base, 'Meter', autospec=True)
|
||||||
|
@mock.patch.object(sender, 'ClientV3', autospec=True)
|
||||||
|
@mock_collectd()
|
||||||
|
@mock_config()
|
||||||
|
def test_alarm_not_updated(self, config, collectd, ClientV3,
|
||||||
|
meter, put, _get_alarm_id, _create_alarm):
|
||||||
|
"""Test if an alarm is created, hence it will not be updated
|
||||||
|
|
||||||
|
Set-up: create a sender object and create an alarm
|
||||||
|
Test: alarm won't be updated if one is created
|
||||||
|
Expected behaviour:
|
||||||
|
- No alarm exists alarm-id throws a KeyError and a put/update request
|
||||||
|
isn't called
|
||||||
|
"""
|
||||||
|
# init instance
|
||||||
|
instance = sender.Sender()
|
||||||
|
|
||||||
|
# init values to send
|
||||||
|
_get_alarm_id.return_value = None
|
||||||
|
_get_alarm_id.side_effect = KeyError()
|
||||||
|
_create_alarm.return_value = requests.Response(), 'my-alarm-id'
|
||||||
|
message = meter.message.return_value
|
||||||
|
metername = meter.meter_name.return_value
|
||||||
|
severity = meter.severity.return_value
|
||||||
|
rid = meter.resource_id.return_value
|
||||||
|
|
||||||
|
# send the values again
|
||||||
|
instance.send(metername, severity, rid, message)
|
||||||
|
|
||||||
|
put.assert_not_called()
|
||||||
|
|
||||||
|
put.reset_mock()
|
||||||
|
|
||||||
@mock.patch.object(requests, 'put', spec=callable)
|
@mock.patch.object(requests, 'put', spec=callable)
|
||||||
@mock.patch.object(sender, 'ClientV3', autospec=True)
|
@mock.patch.object(sender, 'ClientV3', autospec=True)
|
||||||
@mock.patch.object(sender, 'LOGGER', autospec=True)
|
@mock.patch.object(sender, 'LOGGER', autospec=True)
|
||||||
|
6
releasenotes/notes/bug-1669814-22d253192eb2f176.yaml
Normal file
6
releasenotes/notes/bug-1669814-22d253192eb2f176.yaml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
fixes:
|
||||||
|
- |
|
||||||
|
Fixes 'bug 1669814 https://bugs.launchpad.net/collectd-ceilometer-plugin/+bug/1669814'.
|
||||||
|
Included the _update_alarm functions test and the _alarm_not_updated
|
||||||
|
test.
|
Loading…
Reference in New Issue
Block a user