oncall-engine/engine/apps/api/tests/conftest.py
Michael Derynck 6b40f95033 World, meet OnCall!
Co-authored-by: Eve832 <eve.meelan@grafana.com>
    Co-authored-by: Francisco Montes de Oca <nevermind89x@gmail.com>
    Co-authored-by: Ildar Iskhakov <ildar.iskhakov@grafana.com>
    Co-authored-by: Innokentii Konstantinov <innokenty.konstantinov@grafana.com>
    Co-authored-by: Julia <ferril.darkdiver@gmail.com>
    Co-authored-by: maskin25 <kengurek@gmail.com>
    Co-authored-by: Matias Bordese <mbordese@gmail.com>
    Co-authored-by: Matvey Kukuy <motakuk@gmail.com>
    Co-authored-by: Michael Derynck <michael.derynck@grafana.com>
    Co-authored-by: Richard Hartmann <richih@richih.org>
    Co-authored-by: Robby Milo <robbymilo@fastmail.com>
    Co-authored-by: Timur Olzhabayev <timur.olzhabayev@grafana.com>
    Co-authored-by: Vadim Stepanov <vadimkerr@gmail.com>
    Co-authored-by: Yulia Shanyrova <yulia.shanyrova@grafana.com>
2022-06-03 08:09:47 -06:00

68 lines
2.5 KiB
Python

from datetime import timedelta
import pytest
from django.utils import timezone
from apps.slack.scenarios.distribute_alerts import AlertShootingStep
from apps.slack.slack_client import SlackClientWithErrorHandling
@pytest.fixture()
def mock_slack_api_call(monkeypatch):
def _mock_api_call(*args, **kwargs):
return {
"status": 200,
"user": {
"profile": {"image_512": "TEST_SLACK_IMAGE_URL"},
"name": "TEST_SLACK_LOGIN",
"real_name": "TEST_SLACK_NAME",
},
"team": {"name": "TEST_SLACK_TEAM_NAME"},
}
monkeypatch.setattr(SlackClientWithErrorHandling, "api_call", _mock_api_call)
@pytest.fixture()
def make_resolved_ack_new_silenced_alert_groups(make_alert_group, make_alert_receive_channel, make_alert):
def _make_alert_groups_all_statuses(alert_receive_channel, channel_filter, alert_raw_request_data, **kwargs):
resolved_alert_group = make_alert_group(
alert_receive_channel,
channel_filter=channel_filter,
acknowledged_at=timezone.now() + timedelta(hours=1),
resolved_at=timezone.now() + timedelta(hours=2),
resolved=True,
acknowledged=True,
)
make_alert(alert_group=resolved_alert_group, raw_request_data=alert_raw_request_data)
ack_alert_group = make_alert_group(
alert_receive_channel,
channel_filter=channel_filter,
acknowledged_at=timezone.now() + timedelta(hours=1),
acknowledged=True,
)
make_alert(alert_group=ack_alert_group, raw_request_data=alert_raw_request_data)
new_alert_group = make_alert_group(alert_receive_channel, channel_filter=channel_filter)
make_alert(alert_group=new_alert_group, raw_request_data=alert_raw_request_data)
silenced_alert_group = make_alert_group(
alert_receive_channel,
channel_filter=channel_filter,
silenced=True,
silenced_at=timezone.now() + timedelta(hours=1),
)
make_alert(alert_group=silenced_alert_group, raw_request_data=alert_raw_request_data)
return resolved_alert_group, ack_alert_group, new_alert_group, silenced_alert_group
return _make_alert_groups_all_statuses
@pytest.fixture()
def mock_alert_shooting_step_publish_slack_messages(monkeypatch):
def mock_publish_slack_messages(*args, **kwargs):
return None
monkeypatch.setattr(AlertShootingStep, "publish_slack_messages", mock_publish_slack_messages)