From 98889608a2880a84a931b2384bf79ab3555c27dc Mon Sep 17 00:00:00 2001 From: Tim Abbott Date: Thu, 5 Apr 2018 11:31:43 -0700 Subject: [PATCH] help: Fix structure of markdown context logic. Refactoring in this file had resulted in the logic for html_settings_link being duplicated and extra logic being needed to ensure these variables were set where they were needed. This fixes subscriptions_html not being rendered properly in the /help and /api pages, in addition to removing duplicate code. --- zerver/tests/test_docs.py | 21 +++++++++++++++------ zerver/views/integrations.py | 35 ++++++++++------------------------- 2 files changed, 25 insertions(+), 31 deletions(-) diff --git a/zerver/tests/test_docs.py b/zerver/tests/test_docs.py index 47773399d5..76abc65c5b 100644 --- a/zerver/tests/test_docs.py +++ b/zerver/tests/test_docs.py @@ -153,10 +153,10 @@ class IntegrationTest(TestCase): self.assertEqual(context["api_url"], "http://mysubdomain.testserver/api") self.assertTrue(context["html_settings_links"]) - def test_integration_view_html_settings_links(self) -> None: - context = dict() - context['html_settings_links'] = False - add_integrations_context(context) + def test_html_settings_links(self) -> None: + context = dict() # type: Dict[str, Any] + with self.settings(ROOT_DOMAIN_LANDING_PAGE=True): + add_api_uri_context(context, HostRequestMock()) self.assertEqual( context['settings_html'], 'Zulip settings page') @@ -165,8 +165,17 @@ class IntegrationTest(TestCase): 'streams page') context = dict() - context['html_settings_links'] = True - add_integrations_context(context) + with self.settings(ROOT_DOMAIN_LANDING_PAGE=True): + add_api_uri_context(context, HostRequestMock(host="mysubdomain.testserver")) + self.assertEqual( + context['settings_html'], + 'Zulip settings page') + self.assertEqual( + context['subscriptions_html'], + 'streams page') + + context = dict() + add_api_uri_context(context, HostRequestMock()) self.assertEqual( context['settings_html'], 'Zulip settings page') diff --git a/zerver/views/integrations.py b/zerver/views/integrations.py index 2cb12c430b..37cf6294a1 100644 --- a/zerver/views/integrations.py +++ b/zerver/views/integrations.py @@ -34,7 +34,16 @@ def add_api_uri_context(context: Dict[str, Any], request: HttpRequest) -> None: context['external_uri_scheme'] = settings.EXTERNAL_URI_SCHEME context['api_url'] = api_url context['api_url_scheme_relative'] = api_url_scheme_relative + context["html_settings_links"] = html_settings_links + if html_settings_links: + settings_html = 'Zulip settings page' + subscriptions_html = 'streams page' + else: + settings_html = 'Zulip settings page' + subscriptions_html = 'streams page' + context['settings_html'] = settings_html + context['subscriptions_html'] = subscriptions_html class ApiURLView(TemplateView): def get_context_data(self, **kwargs: Any) -> Dict[str, str]: @@ -102,30 +111,6 @@ def add_integrations_context(context: Dict[str, Any]) -> None: context['integrations_dict'] = alphabetical_sorted_integration context['integrations_count_display'] = integrations_count_display - if "html_settings_links" in context and context["html_settings_links"]: - settings_html = 'Zulip settings page' - subscriptions_html = 'streams page' - else: - settings_html = 'Zulip settings page' - subscriptions_html = 'streams page' - - context['settings_html'] = settings_html - context['subscriptions_html'] = subscriptions_html - - -def add_context_for_single_integration(context: Dict[str, Any], name: str, request: HttpRequest) -> None: - add_api_uri_context(context, request) - - if "html_settings_links" in context and context["html_settings_links"]: - settings_html = 'Zulip settings page' - subscriptions_html = 'streams page' - else: - settings_html = 'Zulip settings page' - subscriptions_html = 'streams page' - - context['settings_html'] = settings_html - context['subscriptions_html'] = subscriptions_html - class IntegrationView(ApiURLView): template_name = 'zerver/integrations/index.html' @@ -144,7 +129,7 @@ def integration_doc(request: HttpRequest, integration_name: str=REQ(default=None return HttpResponseNotFound() context = {} # type: Dict[str, Any] - add_context_for_single_integration(context, integration_name, request) + add_api_uri_context(context, request) context['integration_name'] = integration.name context['integration_display_name'] = integration.display_name