
Add the unit test cases for alarm_cli.py alarm.py Change-Id: I8358a9cb6b8e56a9ce16bc3c7dd9cacbee284c39
86 lines
3.0 KiB
Python
86 lines
3.0 KiB
Python
#
|
|
# Copyright IBM 2016. All rights reserved
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
import mock
|
|
import testtools
|
|
|
|
from aodhclient.v2 import alarm
|
|
|
|
|
|
class AlarmManagerTest(testtools.TestCase):
|
|
|
|
def setUp(self):
|
|
super(AlarmManagerTest, self).setUp()
|
|
self.client = mock.Mock()
|
|
self.alarms = {
|
|
'event_alarm': {
|
|
'gnocchi_aggregation_by_metrics_threshold_rule': {},
|
|
'gnocchi_resources_threshold_rule': {},
|
|
'name': 'event_alarm',
|
|
'threshold_rule': {},
|
|
'gnocchi_aggregation_by_resources_threshold_rule': {},
|
|
'event_rule': {},
|
|
'type': 'event'}
|
|
}
|
|
self.results = {
|
|
"result1": {
|
|
"event_rule": {}
|
|
},
|
|
}
|
|
|
|
@mock.patch.object(alarm.AlarmManager, '_get')
|
|
def test_list(self, mock_am):
|
|
am = alarm.AlarmManager(self.client)
|
|
am.list('event')
|
|
mock_am.assert_called_with(
|
|
'v2/alarms?q.field=type&q.op=eq&q.value=event')
|
|
|
|
@mock.patch.object(alarm.AlarmManager, '_get')
|
|
def test_get(self, mock_am):
|
|
am = alarm.AlarmManager(self.client)
|
|
am.get('01919bbd-8b0e-451c-be28-abe250ae9b1b')
|
|
mock_am.assert_called_with(
|
|
'v2/alarms/01919bbd-8b0e-451c-be28-abe250ae9b1b')
|
|
|
|
@mock.patch.object(alarm.AlarmManager, '_delete')
|
|
def test_delete(self, mock_am):
|
|
am = alarm.AlarmManager(self.client)
|
|
am.delete('01919bbd-8b0e-451c-be28-abe250ae9b1b')
|
|
mock_am.assert_called_with(
|
|
'v2/alarms/01919bbd-8b0e-451c-be28-abe250ae9b1b')
|
|
|
|
def test_clean_rules_event_alarm(self):
|
|
am = alarm.AlarmManager(self.client)
|
|
alarm_value = self.alarms.get('event_alarm')
|
|
am._clean_rules('event', alarm_value)
|
|
alarm_value.pop('type')
|
|
alarm_value.pop('name')
|
|
result = self.results.get("result1")
|
|
self.assertEqual(alarm_value, result)
|
|
|
|
@mock.patch.object(alarm.AlarmManager, '_post')
|
|
def test_search(self, mock_am):
|
|
am = alarm.AlarmManager(self.client)
|
|
query = '{"=": {"type": "event"}}'
|
|
am.search(query)
|
|
url = 'v2/query/alarms'
|
|
expected_value = ('{"filter": "{\\"=\\": {\\"type\\":'
|
|
' \\"event\\"}}"}')
|
|
headers_value = {'Content-Type': "application/json"}
|
|
mock_am.assert_called_with(
|
|
url,
|
|
data=expected_value,
|
|
headers=headers_value)
|