From 6a1d231689e01a9355ac5e16b26906816f8b3d56 Mon Sep 17 00:00:00 2001 From: Niloth P <20315308+Niloth-p@users.noreply.github.com> Date: Tue, 27 May 2025 12:45:12 +0530 Subject: [PATCH] integrations: Use directory name to get HTTP headers from fixtures. Previously, the integration's name was directly being used. Due to this, the GitHub Sponsors integration which is in the same module as the GitHub integration could not be used with the `generate-integration-docs-screenshot` script, as it would be unable to locate the fixtures. --- tools/screenshots/generate-integration-docs-screenshot | 6 +++--- zerver/lib/webhooks/common.py | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/tools/screenshots/generate-integration-docs-screenshot b/tools/screenshots/generate-integration-docs-screenshot index c80b1f0140..ce5b4cab60 100755 --- a/tools/screenshots/generate-integration-docs-screenshot +++ b/tools/screenshots/generate-integration-docs-screenshot @@ -122,8 +122,8 @@ def get_fixture_info(fixture_path: str) -> tuple[Any, bool, bool, str]: return data, json_fixture, multipart_fixture, fixture_name -def get_requests_headers(integration_name: str, fixture_name: str) -> dict[str, Any]: - headers = get_fixture_http_headers(integration_name, fixture_name) +def get_requests_headers(integration_dir_name: str, fixture_name: str) -> dict[str, Any]: + headers = get_fixture_http_headers(integration_dir_name, fixture_name) def fix_name(header: str) -> str: return header.removeprefix("HTTP_").replace("_", "-") @@ -153,7 +153,7 @@ def send_bot_payload_message( Message.objects.filter(realm_id=bot.realm_id, sender=bot).delete() data, json_fixture, multipart_fixture, fixture_name = get_fixture_info(fixture_path) - headers = get_requests_headers(integration.name, fixture_name) + headers = get_requests_headers(integration.dir_name, fixture_name) if config.custom_headers: headers.update(config.custom_headers) if config.use_basic_auth: diff --git a/zerver/lib/webhooks/common.py b/zerver/lib/webhooks/common.py index 0fd59c4a18..5282d13129 100644 --- a/zerver/lib/webhooks/common.py +++ b/zerver/lib/webhooks/common.py @@ -214,13 +214,13 @@ def validate_extract_webhook_http_header( return extracted_header -def get_fixture_http_headers(integration_name: str, fixture_name: str) -> dict["str", "str"]: +def get_fixture_http_headers(integration_dir_name: str, fixture_name: str) -> dict["str", "str"]: """For integrations that require custom HTTP headers for some (or all) of their test fixtures, this method will call a specially named function from the target integration module to determine what set of HTTP headers goes with the given test fixture. """ - view_module_name = f"zerver.webhooks.{integration_name}.view" + view_module_name = f"zerver.webhooks.{integration_dir_name}.view" try: # TODO: We may want to migrate to a more explicit registration # strategy for this behavior rather than a try/except import.