Related to https://github.com/grafana/oncall/issues/96 --------- Co-authored-by: Ravishankar <ravishankar.gnanaprakasam@gmail.com>
124 lines
4.5 KiB
Python
124 lines
4.5 KiB
Python
import pytest
|
|
from django.conf import settings
|
|
|
|
if not settings.FEATURE_MATTERMOST_INTEGRATION_ENABLED:
|
|
pytest.skip("Mattermost integration is not enabled", allow_module_level=True)
|
|
else:
|
|
from apps.mattermost.tests.factories import (
|
|
MattermostChannelFactory,
|
|
MattermostMessageFactory,
|
|
MattermostUserFactory,
|
|
)
|
|
|
|
|
|
@pytest.fixture()
|
|
def make_mattermost_channel():
|
|
def _make_mattermost_channel(organization, **kwargs):
|
|
return MattermostChannelFactory(organization=organization, **kwargs)
|
|
|
|
return _make_mattermost_channel
|
|
|
|
|
|
@pytest.fixture()
|
|
def make_mattermost_get_channel_response():
|
|
def _make_mattermost_get_channel_response():
|
|
return {
|
|
"id": "pbg5piuc5bgniftrserb88575h",
|
|
"team_id": "oxfug4kgx3fx7jzow49cpxkmgo",
|
|
"display_name": "Town Square",
|
|
"name": "town-square",
|
|
}
|
|
|
|
return _make_mattermost_get_channel_response
|
|
|
|
|
|
@pytest.fixture()
|
|
def make_mattermost_get_user_response():
|
|
def _make_mattermost_get_user_response():
|
|
return {
|
|
"id": "bew5wsjnctbt78mkq9z6ci9sme",
|
|
"username": "fuzz",
|
|
"nickname": "buzz",
|
|
}
|
|
|
|
return _make_mattermost_get_user_response
|
|
|
|
|
|
@pytest.fixture()
|
|
def make_mattermost_post_response():
|
|
def _make_mattermost_post_response(**kwargs):
|
|
return {
|
|
"id": kwargs["id"] if "id" in kwargs else "bew5wsjnctbt78mkq9z6ci9sme",
|
|
"channel_id": kwargs["channel_id"] if "channel_id" in kwargs else "cew5wstyetbt78mkq9z6ci9spq",
|
|
"user_id": kwargs["user_id"] if "user_id" in kwargs else "uew5wsjnctbz78mkq9z6ci9sos",
|
|
}
|
|
|
|
return _make_mattermost_post_response
|
|
|
|
|
|
@pytest.fixture()
|
|
def make_mattermost_post_response_failure():
|
|
def _make_mattermost_post_response(**kwargs):
|
|
return {
|
|
"status_code": kwargs["status_code"] if "status_code" in kwargs else 400,
|
|
"id": kwargs["id"] if "id" in kwargs else "itre5wsjnctbz78mkq9z6ci9itue",
|
|
"message": kwargs["message"] if "message" in kwargs else "API Error",
|
|
"request_id": kwargs["request_id"] if "request_id" in kwargs else "reqe5wsjnctbz78mkq9z6ci9iqer",
|
|
}
|
|
|
|
return _make_mattermost_post_response
|
|
|
|
|
|
@pytest.fixture()
|
|
def make_mattermost_message():
|
|
def _make_mattermost_message(alert_group, message_type, **kwargs):
|
|
return MattermostMessageFactory(alert_group=alert_group, message_type=message_type, **kwargs)
|
|
|
|
return _make_mattermost_message
|
|
|
|
|
|
@pytest.fixture()
|
|
def make_mattermost_user():
|
|
def _make_mattermost_user(user, **kwargs):
|
|
return MattermostUserFactory(user=user, **kwargs)
|
|
|
|
return _make_mattermost_user
|
|
|
|
|
|
@pytest.fixture
|
|
def set_random_mattermost_sigining_secret(settings):
|
|
def _set_random_mattermost_sigining_secret():
|
|
settings.MATTERMOST_SIGNING_SECRET = "n0cb4954bec053e6e616febf2c2392ff60bd02c453a52ab53d9a8b0d0d6284a6"
|
|
|
|
return _set_random_mattermost_sigining_secret
|
|
|
|
|
|
@pytest.fixture()
|
|
def make_mattermost_event():
|
|
def _make_mattermost_event(action, token, **kwargs):
|
|
return {
|
|
"user_id": kwargs["user_id"] if "user_id" in kwargs else "k8y8fccx57ygpq18oxp8pp3ntr",
|
|
"user_name": kwargs["user_name"] if "user_name" in kwargs else "hbx80530",
|
|
"channel_id": kwargs["channel_id"] if "channel_id" in kwargs else "gug81e7stfy8md747sewpeeqga",
|
|
"channel_name": kwargs["channel_name"] if "channel_name" in kwargs else "camelcase",
|
|
"team_id": kwargs["team_id"] if "team_id" in kwargs else "kjywdxcbjiyyupdgqst8bj8zrw",
|
|
"team_domain": kwargs["team_domain"] if "team_domain" in kwargs else "local",
|
|
"post_id": kwargs["post_id"] if "post_id" in kwargs else "cfsogqc61fbj3yssz78b1tarbw",
|
|
"trigger_id": kwargs["trigger_id"]
|
|
if "trigger_id" in kwargs
|
|
else (
|
|
"cXJhd2Zwc2V3aW5nanBjY2I2YzdxdTc5NmE6azh5OGZjY3"
|
|
"g1N3lncHExOG94cDhwcDNudHI6MTcyODgyMzQxODU4NzpNRVFDSUgv"
|
|
"bURORjQrWFB1R1QzWHdTWGhDZG9rdEpNb3cydFNJL3l5QktLMkZrVj"
|
|
"dBaUFaMjdybFB3c21EWUlyMHFIeVpKVnIyR1gwa2N6RzY5YkpuSDdrOEpuVXhnPT0="
|
|
),
|
|
"type": kwargs["type"] if "type" in kwargs else "",
|
|
"data_source": kwargs["data_source"] if "data_source" in kwargs else "",
|
|
"context": {
|
|
"action": action,
|
|
"token": token,
|
|
"alert": kwargs["alert"] if "alert" in kwargs else "",
|
|
},
|
|
}
|
|
|
|
return _make_mattermost_event
|