Coverage for osm_mon/tests/unit/evaluator/test_evaluator.py: 100%

23 statements  

« prev     ^ index     » next       coverage.py v7.6.12, created at 2025-05-06 19:04 +0000

1# -*- coding: utf-8 -*- 

2 

3# Copyright 2018 Whitestack, LLC 

4# ************************************************************* 

5 

6# This file is part of OSM Monitoring module 

7# All Rights Reserved to Whitestack, LLC 

8 

9# Licensed under the Apache License, Version 2.0 (the "License"); you may 

10# not use this file except in compliance with the License. You may obtain 

11# a copy of the License at 

12 

13# http://www.apache.org/licenses/LICENSE-2.0 

14 

15# Unless required by applicable law or agreed to in writing, software 

16# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 

17# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 

18# License for the specific language governing permissions and limitations 

19# under the License. 

20# For those usages not covered by the Apache License, Version 2.0 please 

21# contact: bdiaz@whitestack.com or glavado@whitestack.com 

22## 

23from unittest import TestCase, mock 

24 

25from osm_mon.core.common_db import CommonDbClient 

26from osm_mon.core.config import Config 

27from osm_mon.core.message_bus_client import MessageBusClient 

28from osm_mon.evaluator.evaluator import AlarmStatus, Evaluator 

29from osm_mon.evaluator.service import EvaluatorService 

30 

31 

32@mock.patch.object(CommonDbClient, "__init__", lambda *args, **kwargs: None) 

33@mock.patch.object(MessageBusClient, "__init__", lambda *args, **kwargs: None) 

34class EvaluatorTest(TestCase): 

35 def setUp(self): 

36 super().setUp() 

37 self.config = Config() 

38 

39 @mock.patch("multiprocessing.Process") 

40 @mock.patch.object(Evaluator, "notify_alarm") 

41 @mock.patch.object(EvaluatorService, "evaluate_alarms") 

42 def test_evaluate(self, evaluate_alarms, notify_alarm, process): 

43 mock_alarm = mock.Mock() 

44 mock_alarm.operation = "gt" 

45 mock_alarm.threshold = 50.0 

46 evaluate_alarms.return_value = [(mock_alarm, AlarmStatus.ALARM)] 

47 

48 evaluator = Evaluator(self.config) 

49 evaluator.evaluate() 

50 

51 process.assert_called_with( 

52 target=notify_alarm, args=(mock_alarm, AlarmStatus.ALARM) 

53 )