#!/usr/bin/env python ############################################################################## # Copyright (c) 2015 Huawei Technologies Co.,Ltd and others. # # All rights reserved. This program and the accompanying materials # are made available under the terms of the Apache License, Version 2.0 # which accompanies this distribution, and is available at # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## # Unittest for # yardstick.benchmark.scenarios.availability.monitor.monitor_command from __future__ import absolute_import import mock import unittest from yardstick.benchmark.scenarios.availability.monitor import basemonitor @mock.patch( 'yardstick.benchmark.scenarios.availability.monitor.basemonitor' '.BaseMonitor') class MonitorMgrTestCase(unittest.TestCase): def setUp(self): config = { 'monitor_type': 'openstack-api', 'key': 'service-status' } self.monitor_configs = [] self.monitor_configs.append(config) def test__MonitorMgr_setup_successful(self, mock_monitor): instance = basemonitor.MonitorMgr({"nova-api": 10}) instance.init_monitors(self.monitor_configs, None) instance.start_monitors() instance.wait_monitors() ret = instance.verify_SLA() def test_MonitorMgr_getitem(self, mock_monitor): monitorMgr = basemonitor.MonitorMgr({"nova-api": 10}) monitorMgr.init_monitors(self.monitor_configs, None) monitorIns = monitorMgr['service-status'] class BaseMonitorTestCase(unittest.TestCase): class MonitorSimple(basemonitor.BaseMonitor): __monitor_type__ = "MonitorForTest" def setup(self): self.monitor_result = False def monitor_func(self): return self.monitor_result def setUp(self): self.monitor_cfg = { 'monitor_type': 'MonitorForTest', 'command_name': 'nova image-list', 'monitor_time': 0.01, 'sla': {'max_outage_time': 5} } def test__basemonitor_start_wait_successful(self): ins = basemonitor.BaseMonitor(self.monitor_cfg, None, {"nova-api": 10}) ins.start_monitor() ins.wait_monitor() def test__basemonitor_all_successful(self): ins = self.MonitorSimple(self.monitor_cfg, None, {"nova-api": 10}) ins.setup() ins.run() ins.verify_SLA() @mock.patch( 'yardstick.benchmark.scenarios.availability.monitor.basemonitor' '.multiprocessing') def test__basemonitor_func_false(self, mock_multiprocess): ins = self.MonitorSimple(self.monitor_cfg, None, {"nova-api": 10}) ins.setup() mock_multiprocess.Event().is_set.return_value = False ins.run() ins.verify_SLA() def test__basemonitor_getmonitorcls_successfule(self): cls = None try: cls = basemonitor.BaseMonitor.get_monitor_cls(self.monitor_cfg) except Exception: pass self.assertIsNone(cls)