snapshot of https://github.com/zulip/zulip.git @ 48c69911c7dd4e03b20552eb3bd77ad8151c1357 (2026-09-15)
Some checks failed
Code scanning / CodeQL (push) Failing after 15s
Zulip production suite / Ubuntu 22.04 production build (push) Failing after 26s
Zulip production suite / Debian 12 production install with custom db name and user (push) Has been skipped
Zulip production suite / Ubuntu 22.04 production install and PostgreSQL upgrade with pgroonga (push) Has been skipped
Zulip production suite / Ubuntu 24.04 production install (push) Has been skipped
Zulip production suite / Ubuntu 26.04 production install (push) Has been skipped
Zulip production suite / Debian 13 production install (push) Has been skipped
Zulip production suite / 7.0 Version Upgrade (push) Has been skipped
Zulip production suite / 8.0 Version Upgrade (push) Has been skipped
Zulip production suite / 6.0 Version Upgrade (push) Has been skipped
Zulip production suite / 10.0 Version Upgrade (push) Has been skipped
Zulip production suite / 9.0 Version Upgrade (push) Has been skipped
Zulip production suite / 12.0 Version Upgrade (push) Has been skipped
Zulip production suite / 11.0 Version Upgrade (push) Has been skipped
GitHub Actions Security Analysis with zizmor / zizmor (push) Failing after 3s
Zulip CI / Debian 12 (Python 3.11, backend + documentation) (push) Failing after 26s
Zulip CI / Ubuntu 22.04 (Python 3.10, backend + frontend) (push) Failing after 3s
Zulip CI / Ubuntu 24.04 (Python 3.12, backend) (push) Failing after 25s
Zulip CI / Ubuntu 26.04 (Python 3.14, backend) (push) Failing after 25s
Zulip CI / Debian 13 (Python 3.13, backend) (push) Failing after 28s
Zulip production suite / Required jobs (push) Has been cancelled
Zulip CI / Required jobs (push) Has been cancelled
API Documentation Update Check / check-feature-level-updated (push) Has been cancelled
API Documentation Update Check / notify-if-api-docs-changed (push) Has been cancelled
Some checks failed
Code scanning / CodeQL (push) Failing after 15s
Zulip production suite / Ubuntu 22.04 production build (push) Failing after 26s
Zulip production suite / Debian 12 production install with custom db name and user (push) Has been skipped
Zulip production suite / Ubuntu 22.04 production install and PostgreSQL upgrade with pgroonga (push) Has been skipped
Zulip production suite / Ubuntu 24.04 production install (push) Has been skipped
Zulip production suite / Ubuntu 26.04 production install (push) Has been skipped
Zulip production suite / Debian 13 production install (push) Has been skipped
Zulip production suite / 7.0 Version Upgrade (push) Has been skipped
Zulip production suite / 8.0 Version Upgrade (push) Has been skipped
Zulip production suite / 6.0 Version Upgrade (push) Has been skipped
Zulip production suite / 10.0 Version Upgrade (push) Has been skipped
Zulip production suite / 9.0 Version Upgrade (push) Has been skipped
Zulip production suite / 12.0 Version Upgrade (push) Has been skipped
Zulip production suite / 11.0 Version Upgrade (push) Has been skipped
GitHub Actions Security Analysis with zizmor / zizmor (push) Failing after 3s
Zulip CI / Debian 12 (Python 3.11, backend + documentation) (push) Failing after 26s
Zulip CI / Ubuntu 22.04 (Python 3.10, backend + frontend) (push) Failing after 3s
Zulip CI / Ubuntu 24.04 (Python 3.12, backend) (push) Failing after 25s
Zulip CI / Ubuntu 26.04 (Python 3.14, backend) (push) Failing after 25s
Zulip CI / Debian 13 (Python 3.13, backend) (push) Failing after 28s
Zulip production suite / Required jobs (push) Has been cancelled
Zulip CI / Required jobs (push) Has been cancelled
API Documentation Update Check / check-feature-level-updated (push) Has been cancelled
API Documentation Update Check / notify-if-api-docs-changed (push) Has been cancelled
This commit is contained in:
108
zerver/tests/test_github.py
Normal file
108
zerver/tests/test_github.py
Normal file
@@ -0,0 +1,108 @@
|
||||
import requests
|
||||
import responses
|
||||
|
||||
from zerver.lib.cache import cache_delete
|
||||
from zerver.lib.github import (
|
||||
InvalidPlatformError,
|
||||
get_latest_github_release_download_link_for_platform,
|
||||
)
|
||||
from zerver.lib.test_classes import ZulipTestCase
|
||||
|
||||
logger_string = "zerver.lib.github"
|
||||
|
||||
|
||||
class GitHubTestCase(ZulipTestCase):
|
||||
@responses.activate
|
||||
def test_get_latest_github_release_download_link_for_platform(self) -> None:
|
||||
responses.add(
|
||||
responses.GET,
|
||||
"https://api.github.com/repos/zulip/zulip-desktop/releases/latest",
|
||||
json={"tag_name": "v5.4.3"},
|
||||
status=200,
|
||||
)
|
||||
|
||||
responses.add(
|
||||
responses.HEAD,
|
||||
"https://desktop-download.zulip.com/v5.4.3/Zulip-Web-Setup-5.4.3.exe",
|
||||
status=302,
|
||||
)
|
||||
self.assertEqual(
|
||||
get_latest_github_release_download_link_for_platform("windows"),
|
||||
"https://desktop-download.zulip.com/v5.4.3/Zulip-Web-Setup-5.4.3.exe",
|
||||
)
|
||||
|
||||
responses.add(
|
||||
responses.HEAD,
|
||||
"https://desktop-download.zulip.com/v5.4.3/Zulip-5.4.3-x86_64.AppImage",
|
||||
status=302,
|
||||
)
|
||||
self.assertEqual(
|
||||
get_latest_github_release_download_link_for_platform("linux"),
|
||||
"https://desktop-download.zulip.com/v5.4.3/Zulip-5.4.3-x86_64.AppImage",
|
||||
)
|
||||
|
||||
responses.add(
|
||||
responses.HEAD,
|
||||
"https://desktop-download.zulip.com/v5.4.3/Zulip-5.4.3-arm64.dmg",
|
||||
status=302,
|
||||
)
|
||||
self.assertEqual(
|
||||
get_latest_github_release_download_link_for_platform("mac"),
|
||||
"https://desktop-download.zulip.com/v5.4.3/Zulip-5.4.3-arm64.dmg",
|
||||
)
|
||||
|
||||
responses.add(
|
||||
responses.HEAD,
|
||||
"https://desktop-download.zulip.com/v5.4.3/Zulip-5.4.3-arm64.dmg",
|
||||
status=302,
|
||||
)
|
||||
self.assertEqual(
|
||||
get_latest_github_release_download_link_for_platform("mac-arm64"),
|
||||
"https://desktop-download.zulip.com/v5.4.3/Zulip-5.4.3-arm64.dmg",
|
||||
)
|
||||
|
||||
responses.add(
|
||||
responses.HEAD,
|
||||
"https://desktop-download.zulip.com/v5.4.3/Zulip-5.4.3-x64.dmg",
|
||||
status=302,
|
||||
)
|
||||
self.assertEqual(
|
||||
get_latest_github_release_download_link_for_platform("mac-intel"),
|
||||
"https://desktop-download.zulip.com/v5.4.3/Zulip-5.4.3-x64.dmg",
|
||||
)
|
||||
|
||||
api_url = "https://api.github.com/repos/zulip/zulip-desktop/releases/latest"
|
||||
responses.replace(responses.GET, api_url, body=requests.RequestException())
|
||||
cache_delete("download_link:windows")
|
||||
with self.assertLogs(logger_string, level="ERROR") as error_log:
|
||||
self.assertEqual(
|
||||
get_latest_github_release_download_link_for_platform("windows"),
|
||||
"https://github.com/zulip/zulip-desktop/releases/latest",
|
||||
)
|
||||
self.assertIn(
|
||||
f"ERROR:{logger_string}:Unable to fetch the latest release version from GitHub {api_url}",
|
||||
error_log.output[0],
|
||||
)
|
||||
|
||||
responses.replace(
|
||||
responses.GET,
|
||||
"https://api.github.com/repos/zulip/zulip-desktop/releases/latest",
|
||||
json={"tag_name": "5.4.4"},
|
||||
status=200,
|
||||
)
|
||||
download_link = "https://desktop-download.zulip.com/v5.4.4/Zulip-5.4.4-x86_64.AppImage"
|
||||
responses.add(responses.HEAD, download_link, status=404)
|
||||
cache_delete("download_link:linux")
|
||||
with self.assertLogs(logger_string, level="ERROR") as error_log:
|
||||
self.assertEqual(
|
||||
get_latest_github_release_download_link_for_platform("linux"),
|
||||
"https://github.com/zulip/zulip-desktop/releases/latest",
|
||||
)
|
||||
|
||||
self.assertEqual(
|
||||
error_log.output,
|
||||
[f"ERROR:{logger_string}:App download link is broken {download_link}"],
|
||||
)
|
||||
|
||||
with self.assertRaises(InvalidPlatformError):
|
||||
get_latest_github_release_download_link_for_platform("plan9")
|
||||
Reference in New Issue
Block a user