oncall-engine/engine/apps/mattermost/tests/conftest.py

125 lines
4.5 KiB
Python
Raw Permalink Normal View History

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