Browse Source

ref(hc): Remove unnecessary organization_service.get call (#62434)

Matt Duncan 1 year ago
parent
commit
f9f8090824
2 changed files with 24 additions and 8 deletions
  1. 7 8
      src/sentry/tasks/auth.py
  2. 17 0
      tests/sentry/tasks/test_auth.py

+ 7 - 8
src/sentry/tasks/auth.py

@@ -17,6 +17,7 @@ from sentry.services.hybrid_cloud.user import RpcUser
 from sentry.services.hybrid_cloud.user.service import user_service
 from sentry.silo import SiloMode
 from sentry.tasks.base import instrumented_task, retry
+from sentry.types.region import RegionMappingNotFound
 from sentry.utils.audit import create_audit_entry_from_user
 from sentry.utils.email import MessageBuilder
 from sentry.utils.http import absolute_uri
@@ -41,11 +42,6 @@ def email_missing_links(org_id: int, actor_id: int, provider_key: str, **kwargs)
 
 
 def _email_missing_links(org_id: int, sending_user_id: int, provider_key: str) -> None:
-    org = organization_service.get(id=org_id)
-    if not org:
-        logger.warning("Could not send SSO link emails: Missing organization")
-        return
-
     user = user_service.get_user(user_id=sending_user_id)
     if not user:
         logger.warning(
@@ -53,9 +49,12 @@ def _email_missing_links(org_id: int, sending_user_id: int, provider_key: str) -
         )
         return
 
-    organization_service.send_sso_link_emails(
-        organization_id=org_id, sending_user_email=user.email, provider_key=provider_key
-    )
+    try:
+        organization_service.send_sso_link_emails(
+            organization_id=org_id, sending_user_email=user.email, provider_key=provider_key
+        )
+    except RegionMappingNotFound:
+        logger.warning("Could not send SSO link emails: Missing organization")
 
 
 @instrumented_task(

+ 17 - 0
tests/sentry/tasks/test_auth.py

@@ -43,6 +43,15 @@ class EmailMissingLinksControlTest(TestCase):
         assert "to enable signing on with your Dummy account" in message.body
         assert "SSO link request invoked by bar@example.com" in message.body
 
+    def test_email_missing_links_organization_deleted(self):
+        with assume_test_silo_mode(SiloMode.REGION):
+            self.organization.delete()
+
+        with self.tasks():
+            email_missing_links_control(self.organization.id, self.user.id, self.provider.provider)
+
+        assert len(mail.outbox) == 0
+
 
 @region_silo_test
 class EmailMissingLinksTest(TestCase):
@@ -76,6 +85,14 @@ class EmailMissingLinksTest(TestCase):
         assert "to enable signing on with your Dummy account" in message.body
         assert "SSO link request invoked by bar@example.com" in message.body
 
+    def test_email_missing_links_organization_deleted(self):
+        self.organization.delete()
+
+        with self.tasks():
+            email_missing_links(self.organization.id, self.user.id, self.provider.provider)
+
+        assert len(mail.outbox) == 0
+
 
 @region_silo_test
 class EmailUnlinkNotificationsTest(TestCase):