oncall-engine/engine/apps/public_api/tests
Joey Orlando a29e35c25a
refactor SlackMessage.channel_id (CHAR field) to SlackMessage.channel (foreign key relationship) (#5292)
# What this PR does

Related to https://github.com/grafana/oncall-private/issues/2947

**NOTE**

This PR introduces steps 1 and 2 of the 3 part migration proposed
[here](https://raintank-corp.slack.com/archives/C06K1MQ07GS/p1732555465144099).
Step 3, swapping reads to be from the new-column and dropping
dual-writes, will be done in a future PR/release.

---

I’m tackling this work now because _ultimately_ I want to move
`AlertReceiveChannel.rate_limited_in_slack_at` to
`SlackChannel.rate_limited_at` , but first I sorta need to refactor
`SlackMessage.channel_id` from a `CHAR` field to a foreign key
relationship (because in the spots where we touch Slack rate limiting,
like
[here](https://github.com/grafana/oncall/blob/dev/engine/apps/slack/alert_group_slack_service.py#L42-L50)
for example, we only have `slack_message.channel_id`, which means I need
to do extra queries to fetch the appropriate `SlackChannel` to then be
able to get/set `SlackChannel.rate_limited_at`

Other minor stuffs:
- it also prepares us to drop `SlackMessage._slack_team_identity`. We
already have a `@property` of `SlackMessage.slack_team_identity` (which
[previously had some hacky
logic](https://github.com/grafana/oncall/blob/dev/engine/apps/slack/models/slack_message.py#L74-L84)).
I've refactored `SlackMessage.slack_team_identity` to simply point to
`self.organization.slack_team_identity` + updated our code to _stop_
setting `SlackMessage._slack_team_identity` (will drop this column in
future release)

## Checklist

- [x] Unit, integration, and e2e (if applicable) tests updated
- [x] Documentation added (or `pr:no public docs` PR label added if not
required)
- [x] Added the relevant release notes label (see labels prefixed w/
`release:`). These labels dictate how your PR will
    show up in the autogenerated release notes.
2024-11-26 11:03:38 +00:00
..
__init__.py World, meet OnCall! 2022-06-03 08:09:47 -06:00
test_alert_groups.py refactor SlackMessage.channel_id (CHAR field) to SlackMessage.channel (foreign key relationship) (#5292) 2024-11-26 11:03:38 +00:00
test_alerts.py augment API response pagination attributes (#2471) 2023-07-14 11:19:40 -04:00
test_custom_actions.py Migrate webhooks integration_filter to use a m2m field instead (#3946) 2024-02-23 11:55:44 +00:00
test_escalation.py update URLs constructed by the backend to support IRM plugin (#5137) 2024-10-09 08:55:10 -04:00
test_escalation_chain.py augment API response pagination attributes (#2471) 2023-07-14 11:19:40 -04:00
test_escalation_policies.py Reworked declare incident escalation step (#5130) 2024-10-07 19:26:10 +00:00
test_integrations.py chore: remove deprecated slack_channel and heartbeat integration types (#5270) 2024-11-20 11:17:04 -05:00
test_maintenance.py World, meet OnCall! 2022-06-03 08:09:47 -06:00
test_on_call_shifts.py fix: Add rolling users validation for oncall shift API (#5050) 2024-09-20 21:06:33 +00:00
test_personal_notification_rules.py augment API response pagination attributes (#2471) 2023-07-14 11:19:40 -04:00
test_ratelimit.py Use dataclass methods in custom ratelimits and fix tests (#5036) 2024-09-18 13:32:16 +00:00
test_rbac_permissions.py Enable service account token auth for public API (#5254) 2024-11-19 12:52:23 +00:00
test_resolution_notes.py fix: check for service account user on public API resolution note (#5286) 2024-11-21 12:14:30 +00:00
test_routes.py chore: convert two slack channel ID char fields to foreign keys (#5224) 2024-11-04 13:34:06 -05:00
test_schedule_export.py upgrade flake8 to v7 (#4141) 2024-04-02 14:26:19 +00:00
test_schedules.py feat: convert schedule.channel (char field) to schedule.slack_channel (foreign key) (#5199) 2024-11-04 14:27:21 -05:00
test_shift_swap.py Update Makefile dev bootstrap; fix test (#4582) 2024-06-25 14:43:50 +00:00
test_slack_channels.py augment API response pagination attributes (#2471) 2023-07-14 11:19:40 -04:00
test_teams.py feat: add Grafana IDs to users and teams public API endpoints (#5075) 2024-09-24 19:16:22 +00:00
test_user_groups.py augment API response pagination attributes (#2471) 2023-07-14 11:19:40 -04:00
test_users.py feat: add Grafana IDs to users and teams public API endpoints (#5075) 2024-09-24 19:16:22 +00:00
test_webhooks.py Allow webhook modification by API for advanced webhook (#4175) 2024-04-23 19:18:12 +00:00