From ff577753689838eca126970f7e272771ac633594 Mon Sep 17 00:00:00 2001 From: Michael Derynck Date: Fri, 22 Jul 2022 10:02:00 -0600 Subject: [PATCH] Change slack URL to be built the same as other engine URLs (#280) * Change slack login url to be built the same way as other engine urls * Fix tests * Change how to override base url in create_engine_url * Change how to override base url in create_engine_url --- engine/apps/alerts/tests/test_alert_receiver_channel.py | 7 ++----- engine/apps/social_auth/live_setting_django_strategy.py | 5 +++-- engine/common/api_helpers/utils.py | 4 +++- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/engine/apps/alerts/tests/test_alert_receiver_channel.py b/engine/apps/alerts/tests/test_alert_receiver_channel.py index b8b70cb6..20d5528d 100644 --- a/engine/apps/alerts/tests/test_alert_receiver_channel.py +++ b/engine/apps/alerts/tests/test_alert_receiver_channel.py @@ -5,6 +5,7 @@ import pytest from django.urls import reverse from apps.alerts.models import AlertReceiveChannel +from common.api_helpers.utils import create_engine_url @pytest.mark.django_db @@ -26,11 +27,7 @@ def test_integration_url(make_organization, make_alert_receive_channel, url, set kwargs={"alert_channel_key": alert_receive_channel.token}, ) - # remove trailing / if present - if url[-1] == "/": - url = url[:-1] - - assert alert_receive_channel.integration_url == f"{url}{path}" + assert alert_receive_channel.integration_url == create_engine_url(path) @pytest.mark.django_db diff --git a/engine/apps/social_auth/live_setting_django_strategy.py b/engine/apps/social_auth/live_setting_django_strategy.py index d2cf0fe1..a8deb5d8 100644 --- a/engine/apps/social_auth/live_setting_django_strategy.py +++ b/engine/apps/social_auth/live_setting_django_strategy.py @@ -7,6 +7,7 @@ from django.utils.functional import Promise from social_django.strategy import DjangoStrategy from apps.base.utils import live_settings +from common.api_helpers.utils import create_engine_url logger = logging.getLogger(__name__) @@ -37,9 +38,9 @@ class LiveSettingDjangoStrategy(DjangoStrategy): Overridden DjangoStrategy's method to substitute and force the host value from ENV """ if live_settings.SLACK_INSTALL_RETURN_REDIRECT_HOST is not None and path is not None: - return live_settings.SLACK_INSTALL_RETURN_REDIRECT_HOST + path + return create_engine_url(path, override_base=live_settings.SLACK_INSTALL_RETURN_REDIRECT_HOST) if settings.SLACK_INSTALL_RETURN_REDIRECT_HOST is not None and path is not None: - return settings.SLACK_INSTALL_RETURN_REDIRECT_HOST + path + return create_engine_url(path, override_base=settings.SLACK_INSTALL_RETURN_REDIRECT_HOST) if self.request: return self.request.build_absolute_uri(path) else: diff --git a/engine/common/api_helpers/utils.py b/engine/common/api_helpers/utils.py index 06b17f0f..9c974a37 100644 --- a/engine/common/api_helpers/utils.py +++ b/engine/common/api_helpers/utils.py @@ -54,8 +54,10 @@ def validate_ical_url(url): return None -def create_engine_url(path): +def create_engine_url(path, override_base=None): base = settings.BASE_URL + if override_base: + base = override_base if not base.endswith("/"): base += "/" trimmed_path = path.lstrip("/")