From 676d40d66be17941a1bebfd66dc348b17d5ad21b Mon Sep 17 00:00:00 2001 From: Anders Kaseorg Date: Fri, 23 Sep 2022 21:50:42 -0700 Subject: [PATCH] sentry: Initialize sentry in AppConfig ready hook. This breaks an import cycle that prevented django-stubs from inferring types for django.conf.settings. Signed-off-by: Anders Kaseorg --- zerver/apps.py | 6 ++++++ zproject/computed_settings.py | 4 ---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/zerver/apps.py b/zerver/apps.py index 19530d9f17..e7e4832173 100644 --- a/zerver/apps.py +++ b/zerver/apps.py @@ -16,6 +16,12 @@ class ZerverConfig(AppConfig): name: str = "zerver" def ready(self) -> None: + if settings.SENTRY_DSN: # nocoverage + from zproject.config import get_config + from zproject.sentry import setup_sentry + + setup_sentry(settings.SENTRY_DSN, get_config("machine", "deploy_type", "development")) + # We import zerver.signals here for the side effect of # registering the user_logged_in signal receiver. This import # needs to be here (rather than e.g. at top-of-file) to avoid diff --git a/zproject/computed_settings.py b/zproject/computed_settings.py index 711e0f907b..f49618e966 100644 --- a/zproject/computed_settings.py +++ b/zproject/computed_settings.py @@ -1224,10 +1224,6 @@ TWO_FACTOR_PATCH_ADMIN = False # Allow the environment to override the default DSN SENTRY_DSN = os.environ.get("SENTRY_DSN", SENTRY_DSN) -if SENTRY_DSN: - from .sentry import setup_sentry - - setup_sentry(SENTRY_DSN, get_config("machine", "deploy_type", "development")) SCIM_SERVICE_PROVIDER = { "USER_ADAPTER": "zerver.lib.scim.ZulipSCIMUser",