|
3 | 3 | from sentry.models.commit import Commit
|
4 | 4 | from sentry.models.group import GroupStatus
|
5 | 5 | from sentry.models.pullrequest import PullRequest
|
| 6 | +from sentry.silo.base import SiloMode |
6 | 7 | from sentry.testutils.cases import TestCase
|
| 8 | +from sentry.testutils.silo import assume_test_silo_mode |
7 | 9 | from sentry.types.activity import ActivityType
|
| 10 | +from sentry.users.models.user import User |
8 | 11 |
|
9 | 12 |
|
10 | 13 | class GroupActivityTestCase(TestCase):
|
@@ -150,3 +153,53 @@ def test_collapse_group_stats_in_activity_with_option(self):
|
150 | 153 | serialized = serialize(act)
|
151 | 154 |
|
152 | 155 | assert "firstSeen" not in serialized["data"]["source"]
|
| 156 | + |
| 157 | + def test_get_activities_for_group_proxy_user(self): |
| 158 | + project = self.create_project(name="test_activities_group") |
| 159 | + group = self.create_group(project) |
| 160 | + user = self.create_user() |
| 161 | + data = serialize( |
| 162 | + Activity.objects.create_group_activity( |
| 163 | + group=group, |
| 164 | + type=ActivityType.NOTE, |
| 165 | + data={"text": "A human sent this message"}, |
| 166 | + user=user, |
| 167 | + ) |
| 168 | + ) |
| 169 | + # Regular users, have a new empty key |
| 170 | + assert data["user"]["name"] == user.username |
| 171 | + assert data["sentry_app"] is None |
| 172 | + |
| 173 | + sentry_app = self.create_sentry_app(name="test_sentry_app") |
| 174 | + default_avatar = self.create_sentry_app_avatar(sentry_app=sentry_app) |
| 175 | + upload_avatar = self.create_sentry_app_avatar(sentry_app=sentry_app) |
| 176 | + with assume_test_silo_mode(SiloMode.CONTROL): |
| 177 | + proxy_user = User.objects.get(id=sentry_app.proxy_user_id) |
| 178 | + upload_avatar.avatar_type = 1 # an upload |
| 179 | + upload_avatar.color = True # a logo |
| 180 | + upload_avatar.save() |
| 181 | + |
| 182 | + data = serialize( |
| 183 | + Activity.objects.create_group_activity( |
| 184 | + group=group, |
| 185 | + type=ActivityType.NOTE, |
| 186 | + data={"text": "My app sent this message"}, |
| 187 | + user=proxy_user, |
| 188 | + ) |
| 189 | + ) |
| 190 | + assert data["user"]["name"] == proxy_user.username |
| 191 | + assert data["sentry_app"]["name"] == sentry_app.name |
| 192 | + assert { |
| 193 | + "avatarType": "default", |
| 194 | + "avatarUuid": default_avatar.ident, |
| 195 | + "avatarUrl": f"http://testserver/sentry-app-avatar/{default_avatar.ident}/", |
| 196 | + "color": False, |
| 197 | + "photoType": "icon", |
| 198 | + } in data["sentry_app"]["avatars"] |
| 199 | + assert { |
| 200 | + "avatarType": "upload", |
| 201 | + "avatarUuid": upload_avatar.ident, |
| 202 | + "avatarUrl": f"http://testserver/sentry-app-avatar/{upload_avatar.ident}/", |
| 203 | + "color": True, |
| 204 | + "photoType": "logo", |
| 205 | + } in data["sentry_app"]["avatars"] |
0 commit comments