Browse Source

fix(hc): Make RpcAvatar.file_id optional to match ORM schema (#46524)

Addresses SENTRY-104N (https://sentry.sentry.io/issues/4044472416/)
Ryan Skonnord 1 year ago
parent
commit
6874a67c8d

+ 1 - 1
src/sentry/services/hybrid_cloud/user/__init__.py

@@ -21,7 +21,7 @@ if TYPE_CHECKING:
 @dataclass(frozen=True, eq=True)
 class RpcAvatar:
     id: int = 0
-    file_id: int = 0
+    file_id: Optional[int] = None
     ident: str = ""
     avatar_type: str = "letter_avatar"
 

+ 15 - 0
tests/sentry/models/test_projectownership.py

@@ -5,6 +5,7 @@ from sentry.models import (
     Repository,
     Team,
     User,
+    UserAvatar,
     UserEmail,
 )
 from sentry.models.groupowner import GroupOwner, GroupOwnerType, OwnerRuleType
@@ -639,3 +640,17 @@ class ResolveActorsTestCase(TestCase):
             owner5: actor5,
             owner6: actor6,
         }
+
+    def test_with_user_avatar(self):
+        # Check for regressions associated with serializing to RpcUser with a
+        # non-null UserAvatar
+
+        user = self.create_user()
+        UserAvatar.objects.create(user=user)
+
+        org = self.create_organization(owner=user)
+        team = self.create_team(organization=org, members=[user])
+        project = self.create_project(organization=org, teams=[team])
+
+        owner = Owner("user", user.email)
+        resolve_actors([owner], project.id)