import json import unittest from unittest.mock import Mock from slz_uow_monitoring.datadog import DatadogClient class DatadogClientTestCase(unittest.TestCase): def setUp(self) -> None: self.dd_secrets = json.dumps( { 'DATADOG_API_KEY': '45d82ac89', 'DATADOG_APPLICATION_KEY': 'bae0915', 'DATADOG_MONITOR_ID': '156' } ) @unittest.mock.patch('slz_uow_monitoring.datadog.get_secret') @unittest.mock.patch('requests.get') def test_get_triggered_group_ids_respond_with_error(self, requests_get, get_secret): requests_get.return_value.ok = False get_secret.return_value = self.dd_secrets client = DatadogClient(Mock(), 'path_to_secrets') result = client.get_triggered_group_ids() self.assertEqual(result, []) @unittest.mock.patch('slz_uow_monitoring.datadog.get_secret') @unittest.mock.patch('requests.get') def test_get_triggered_group_ids_correct_result(self, requests_get, get_secret): # Mock secrets requests_get.return_value.ok = True requests_get.return_value.json.return_value = { 'state': { 'groups': { 'test_group_1': { 'last_notified_ts': 1481909160, 'status': 'Alert', }, 'test_group_2': { 'last_notified_ts': 1481909160, 'status': 'OK', }, } } } get_secret.return_value = self.dd_secrets client = DatadogClient(Mock(), 'path_to_secrets') result = client.get_triggered_group_ids() self.assertEqual(result, ['test_group_1'])