Browse Source

chore(hybrid-cloud): Patch DocIntegrationAvatar for split db (#54752)

Alberto Leal 1 year ago
parent
commit
8c210e9b92
1 changed files with 17 additions and 11 deletions
  1. 17 11
      tests/sentry/api/endpoints/test_doc_integration_avatar.py

+ 17 - 11
tests/sentry/api/endpoints/test_doc_integration_avatar.py

@@ -3,12 +3,14 @@ from __future__ import annotations
 from base64 import b64encode
 from typing import Any
 
+from django.test import override_settings
 from rest_framework import status
 
 from sentry import options as options_store
 from sentry.api.serializers.base import serialize
+from sentry.silo.base import SiloMode
 from sentry.testutils.cases import APITestCase
-from sentry.testutils.silo import control_silo_test
+from sentry.testutils.silo import assume_test_silo_mode, control_silo_test
 
 
 class DocIntegrationAvatarTest(APITestCase):
@@ -58,7 +60,7 @@ class GetDocIntegrationAvatarTest(DocIntegrationAvatarTest):
             assert serialize(doc.avatar.get()) == response.data["avatar"]
 
 
-@control_silo_test()  # stable=True blocked on avatar File implementation
+@control_silo_test(stable=True)
 class PutDocIntegrationAvatarTest(DocIntegrationAvatarTest):
     method = "PUT"
 
@@ -81,15 +83,19 @@ class PutDocIntegrationAvatarTest(DocIntegrationAvatarTest):
             }
         ):
             self.login_as(user=self.superuser, superuser=True)
-            for doc in [self.published_doc, self.draft_doc]:
-                prev_avatar = doc.avatar.get()
-                response = self.get_success_response(
-                    doc.slug, status_code=status.HTTP_200_OK, **self.avatar_payload
-                )
-                assert serialize(doc) == response.data
-                assert serialize(doc.avatar.get()) == response.data["avatar"]
-                assert serialize(prev_avatar) != response.data["avatar"]
-                assert prev_avatar.control_file_id != doc.avatar.get().control_file_id
+
+            with assume_test_silo_mode(SiloMode.CONTROL), override_settings(
+                SILO_MODE=SiloMode.CONTROL
+            ):
+                for doc in [self.published_doc, self.draft_doc]:
+                    prev_avatar = doc.avatar.get()
+                    response = self.get_success_response(
+                        doc.slug, status_code=status.HTTP_200_OK, **self.avatar_payload
+                    )
+                    assert serialize(doc) == response.data
+                    assert serialize(doc.avatar.get()) == response.data["avatar"]
+                    assert serialize(prev_avatar) != response.data["avatar"]
+                    assert prev_avatar.control_file_id != doc.avatar.get().control_file_id
 
     def test_upload_avatar_payload_structure(self):
         """