def setUp(self): super(AlertsTests, self).setUp() self.alerts = Alerts("123")
class AlertsTests(TestCase): """ Tests for the Alerts class """ def setUp(self): super(AlertsTests, self).setUp() self.alerts = Alerts("123") @patch.object(Alerts, "_post") def test_create(self, mock_post): """ Test .create() """ alert_config = WebHookAlertConfig(url="https://www.google.com") self.alerts.create(alert_config) mock_post.assert_called_once_with( request="create", uri="actions", params={ "rate_count": 1, "rate_range": "hour", "limit_count": 1, "limit_range": "hour", "schedule": [], "enabled": True, "type": "webhook", "args": {"url": "https://www.google.com"}, }, ) @patch.object(Alerts, "_post") def test_list(self, mock_post): """ Test .list() """ self.alerts.list() mock_post.assert_called_once_with(request="list", uri="actions") @patch.object(Alerts, "list") def test_get_no_args(self, mock_list): """ Test .get() without alert_args """ mock_list.return_value = [ {"type": "slack", "args": {"url": "https://hooks.slack.com/services/111"}}, {"type": "slack", "args": {"url": "https://hooks.slack.com/services/222"}}, {"type": "mailto", "args": {"direct": "*****@*****.**"}}, ] response = self.alerts.get("slack") self.assertEqual( response, [ {"type": "slack", "args": {"url": "https://hooks.slack.com/services/111"}}, {"type": "slack", "args": {"url": "https://hooks.slack.com/services/222"}}, ], ) @patch.object(Alerts, "list") def test_get_with_args(self, mock_list): """ Test .get() with alert_args """ mock_list.return_value = [ {"type": "slack", "args": {"url": "https://hooks.slack.com/services/111"}}, {"type": "slack", "args": {"url": "https://hooks.slack.com/services/222"}}, {"type": "mailto", "args": {"direct": "*****@*****.**"}}, ] response = self.alerts.get("slack", {"url": "https://hooks.slack.com/services/111"}) self.assertEqual(response, [{"type": "slack", "args": {"url": "https://hooks.slack.com/services/111"}}]) @patch.object(Alerts, "list") def test_get_none(self, mock_list): """ Test .get() with no matches """ mock_list.return_value = [{"type": "mailto", "args": {"direct": "*****@*****.**"}}] response = self.alerts.get("slack") self.assertEqual(response, []) @patch.object(Alerts, "_post") def test_update(self, mock_post): """ Test .update() """ label = { "should not get through": "nope", "id": "d9d4596e-49e4-4135-b3b3-847f9e7c1f43", "args": {"direct": "*****@*****.**"}, "rate_count": 1, "rate_range": "hour", "limit_count": 1, "limit_range": "hour", "schedule": [], "enabled": True, "type": "mailto", } self.alerts.update(label) mock_post.assert_called_once_with( request="update", uri="actions", params={ "id": "d9d4596e-49e4-4135-b3b3-847f9e7c1f43", "args": {"direct": "*****@*****.**"}, "rate_count": 1, "rate_range": "hour", "limit_count": 1, "limit_range": "hour", "schedule": [], "enabled": True, "type": "mailto", }, ) @patch.object(Alerts, "_post") def test_delete(self, mock_post): """ Test .delete() """ self.alerts.delete("006d95a8-4fac-42c4-90ed-c3c34978de3e") mock_post.assert_called_once_with( request="delete", uri="actions", params={"id": "006d95a8-4fac-42c4-90ed-c3c34978de3e"} )