From 566e59f0c2e893f651ccc911be62d3d2a20fcfce Mon Sep 17 00:00:00 2001 From: sbansal1999 Date: Fri, 21 Apr 2023 19:28:42 +0530 Subject: [PATCH] webhooks: Add issue unassigned fixture to GitHub Integration. This commit adds the fixture that is received when an issue is unassigned. This fixture helps in testing the integration for that event. --- .../github/fixtures/issues__unassigned.json | 243 ++++++++++++++++++ zerver/webhooks/github/tests.py | 11 + 2 files changed, 254 insertions(+) create mode 100644 zerver/webhooks/github/fixtures/issues__unassigned.json diff --git a/zerver/webhooks/github/fixtures/issues__unassigned.json b/zerver/webhooks/github/fixtures/issues__unassigned.json new file mode 100644 index 0000000000..64277ffb9a --- /dev/null +++ b/zerver/webhooks/github/fixtures/issues__unassigned.json @@ -0,0 +1,243 @@ +{ + "action": "unassigned", + "issue": { + "url": "https://api.github.com/repos/sbansal1999/testing-gh/issues/9", + "repository_url": "https://api.github.com/repos/sbansal1999/testing-gh", + "labels_url": "https://api.github.com/repos/sbansal1999/testing-gh/issues/9/labels{/name}", + "comments_url": "https://api.github.com/repos/sbansal1999/testing-gh/issues/9/comments", + "events_url": "https://api.github.com/repos/sbansal1999/testing-gh/issues/9/events", + "html_url": "https://github.com/sbansal1999/testing-gh/issues/9", + "id": 1661128666, + "node_id": "I_kwDOJRp_V85jAs_a", + "number": 9, + "title": "idk man", + "user": { + "login": "sbansal1999", + "id": 35286603, + "node_id": "MDQ6VXNlcjM1Mjg2NjAz", + "avatar_url": "https://avatars.githubusercontent.com/u/35286603?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/sbansal1999", + "html_url": "https://github.com/sbansal1999", + "followers_url": "https://api.github.com/users/sbansal1999/followers", + "following_url": "https://api.github.com/users/sbansal1999/following{/other_user}", + "gists_url": "https://api.github.com/users/sbansal1999/gists{/gist_id}", + "starred_url": "https://api.github.com/users/sbansal1999/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/sbansal1999/subscriptions", + "organizations_url": "https://api.github.com/users/sbansal1999/orgs", + "repos_url": "https://api.github.com/users/sbansal1999/repos", + "events_url": "https://api.github.com/users/sbansal1999/events{/privacy}", + "received_events_url": "https://api.github.com/users/sbansal1999/received_events", + "type": "User", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignee": { + "login": "tester987654", + "id": 131135014, + "node_id": "U_kgDOB9D2Jg", + "avatar_url": "https://avatars.githubusercontent.com/u/131135014?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/tester987654", + "html_url": "https://github.com/tester987654", + "followers_url": "https://api.github.com/users/tester987654/followers", + "following_url": "https://api.github.com/users/tester987654/following{/other_user}", + "gists_url": "https://api.github.com/users/tester987654/gists{/gist_id}", + "starred_url": "https://api.github.com/users/tester987654/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/tester987654/subscriptions", + "organizations_url": "https://api.github.com/users/tester987654/orgs", + "repos_url": "https://api.github.com/users/tester987654/repos", + "events_url": "https://api.github.com/users/tester987654/events{/privacy}", + "received_events_url": "https://api.github.com/users/tester987654/received_events", + "type": "User", + "site_admin": false + }, + "assignees": [ + { + "login": "tester987654", + "id": 131135014, + "node_id": "U_kgDOB9D2Jg", + "avatar_url": "https://avatars.githubusercontent.com/u/131135014?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/tester987654", + "html_url": "https://github.com/tester987654", + "followers_url": "https://api.github.com/users/tester987654/followers", + "following_url": "https://api.github.com/users/tester987654/following{/other_user}", + "gists_url": "https://api.github.com/users/tester987654/gists{/gist_id}", + "starred_url": "https://api.github.com/users/tester987654/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/tester987654/subscriptions", + "organizations_url": "https://api.github.com/users/tester987654/orgs", + "repos_url": "https://api.github.com/users/tester987654/repos", + "events_url": "https://api.github.com/users/tester987654/events{/privacy}", + "received_events_url": "https://api.github.com/users/tester987654/received_events", + "type": "User", + "site_admin": false + } + ], + "milestone": null, + "comments": 2, + "created_at": "2023-04-10T17:55:43Z", + "updated_at": "2023-04-21T13:51:30Z", + "closed_at": null, + "author_association": "OWNER", + "active_lock_reason": null, + "body": "Some Random Description about which I know nothing", + "reactions": { + "url": "https://api.github.com/repos/sbansal1999/testing-gh/issues/9/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/sbansal1999/testing-gh/issues/9/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + "assignee": { + "login": "sbansal1999", + "id": 35286603, + "node_id": "MDQ6VXNlcjM1Mjg2NjAz", + "avatar_url": "https://avatars.githubusercontent.com/u/35286603?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/sbansal1999", + "html_url": "https://github.com/sbansal1999", + "followers_url": "https://api.github.com/users/sbansal1999/followers", + "following_url": "https://api.github.com/users/sbansal1999/following{/other_user}", + "gists_url": "https://api.github.com/users/sbansal1999/gists{/gist_id}", + "starred_url": "https://api.github.com/users/sbansal1999/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/sbansal1999/subscriptions", + "organizations_url": "https://api.github.com/users/sbansal1999/orgs", + "repos_url": "https://api.github.com/users/sbansal1999/repos", + "events_url": "https://api.github.com/users/sbansal1999/events{/privacy}", + "received_events_url": "https://api.github.com/users/sbansal1999/received_events", + "type": "User", + "site_admin": false + }, + "repository": { + "id": 622493527, + "node_id": "R_kgDOJRp_Vw", + "name": "testing-gh", + "full_name": "sbansal1999/testing-gh", + "private": false, + "owner": { + "login": "sbansal1999", + "id": 35286603, + "node_id": "MDQ6VXNlcjM1Mjg2NjAz", + "avatar_url": "https://avatars.githubusercontent.com/u/35286603?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/sbansal1999", + "html_url": "https://github.com/sbansal1999", + "followers_url": "https://api.github.com/users/sbansal1999/followers", + "following_url": "https://api.github.com/users/sbansal1999/following{/other_user}", + "gists_url": "https://api.github.com/users/sbansal1999/gists{/gist_id}", + "starred_url": "https://api.github.com/users/sbansal1999/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/sbansal1999/subscriptions", + "organizations_url": "https://api.github.com/users/sbansal1999/orgs", + "repos_url": "https://api.github.com/users/sbansal1999/repos", + "events_url": "https://api.github.com/users/sbansal1999/events{/privacy}", + "received_events_url": "https://api.github.com/users/sbansal1999/received_events", + "type": "User", + "site_admin": false + }, + "html_url": "https://github.com/sbansal1999/testing-gh", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/sbansal1999/testing-gh", + "forks_url": "https://api.github.com/repos/sbansal1999/testing-gh/forks", + "keys_url": "https://api.github.com/repos/sbansal1999/testing-gh/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/sbansal1999/testing-gh/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/sbansal1999/testing-gh/teams", + "hooks_url": "https://api.github.com/repos/sbansal1999/testing-gh/hooks", + "issue_events_url": "https://api.github.com/repos/sbansal1999/testing-gh/issues/events{/number}", + "events_url": "https://api.github.com/repos/sbansal1999/testing-gh/events", + "assignees_url": "https://api.github.com/repos/sbansal1999/testing-gh/assignees{/user}", + "branches_url": "https://api.github.com/repos/sbansal1999/testing-gh/branches{/branch}", + "tags_url": "https://api.github.com/repos/sbansal1999/testing-gh/tags", + "blobs_url": "https://api.github.com/repos/sbansal1999/testing-gh/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/sbansal1999/testing-gh/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/sbansal1999/testing-gh/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/sbansal1999/testing-gh/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/sbansal1999/testing-gh/statuses/{sha}", + "languages_url": "https://api.github.com/repos/sbansal1999/testing-gh/languages", + "stargazers_url": "https://api.github.com/repos/sbansal1999/testing-gh/stargazers", + "contributors_url": "https://api.github.com/repos/sbansal1999/testing-gh/contributors", + "subscribers_url": "https://api.github.com/repos/sbansal1999/testing-gh/subscribers", + "subscription_url": "https://api.github.com/repos/sbansal1999/testing-gh/subscription", + "commits_url": "https://api.github.com/repos/sbansal1999/testing-gh/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/sbansal1999/testing-gh/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/sbansal1999/testing-gh/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/sbansal1999/testing-gh/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/sbansal1999/testing-gh/contents/{+path}", + "compare_url": "https://api.github.com/repos/sbansal1999/testing-gh/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/sbansal1999/testing-gh/merges", + "archive_url": "https://api.github.com/repos/sbansal1999/testing-gh/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/sbansal1999/testing-gh/downloads", + "issues_url": "https://api.github.com/repos/sbansal1999/testing-gh/issues{/number}", + "pulls_url": "https://api.github.com/repos/sbansal1999/testing-gh/pulls{/number}", + "milestones_url": "https://api.github.com/repos/sbansal1999/testing-gh/milestones{/number}", + "notifications_url": "https://api.github.com/repos/sbansal1999/testing-gh/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/sbansal1999/testing-gh/labels{/name}", + "releases_url": "https://api.github.com/repos/sbansal1999/testing-gh/releases{/id}", + "deployments_url": "https://api.github.com/repos/sbansal1999/testing-gh/deployments", + "created_at": "2023-04-02T09:31:40Z", + "updated_at": "2023-04-02T09:31:40Z", + "pushed_at": "2023-04-02T09:55:55Z", + "git_url": "git://github.com/sbansal1999/testing-gh.git", + "ssh_url": "git@github.com:sbansal1999/testing-gh.git", + "clone_url": "https://github.com/sbansal1999/testing-gh.git", + "svn_url": "https://github.com/sbansal1999/testing-gh", + "homepage": null, + "size": 0, + "stargazers_count": 0, + "watchers_count": 0, + "language": null, + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": false, + "forks_count": 0, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 9, + "license": null, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "topics": [], + "visibility": "public", + "forks": 0, + "open_issues": 9, + "watchers": 0, + "default_branch": "fixing-typo" + }, + "sender": { + "login": "sbansal1999", + "id": 35286603, + "node_id": "MDQ6VXNlcjM1Mjg2NjAz", + "avatar_url": "https://avatars.githubusercontent.com/u/35286603?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/sbansal1999", + "html_url": "https://github.com/sbansal1999", + "followers_url": "https://api.github.com/users/sbansal1999/followers", + "following_url": "https://api.github.com/users/sbansal1999/following{/other_user}", + "gists_url": "https://api.github.com/users/sbansal1999/gists{/gist_id}", + "starred_url": "https://api.github.com/users/sbansal1999/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/sbansal1999/subscriptions", + "organizations_url": "https://api.github.com/users/sbansal1999/orgs", + "repos_url": "https://api.github.com/users/sbansal1999/repos", + "events_url": "https://api.github.com/users/sbansal1999/events{/privacy}", + "received_events_url": "https://api.github.com/users/sbansal1999/received_events", + "type": "User", + "site_admin": false + } +} diff --git a/zerver/webhooks/github/tests.py b/zerver/webhooks/github/tests.py index 8d4a32f47a..5aae92775b 100644 --- a/zerver/webhooks/github/tests.py +++ b/zerver/webhooks/github/tests.py @@ -153,6 +153,17 @@ class GitHubWebhookTest(WebhookTestCase): expected_message = "sbansal1999 assigned [issue #7 Sample Issue testing something](https://github.com/sbansal1999/testing-gh/issues/7) (assigned to sbansal1999):\n\n~~~ quote\nIDK how this works, lets see if it can be fixed or not.\n~~~" self.check_webhook("issues__assigned", expected_topic, expected_message) + def test_issue_unassigned(self) -> None: + expected_message = "sbansal1999 unassigned [issue #9](https://github.com/sbansal1999/testing-gh/issues/9) (assigned to tester987654):\n\n~~~ quote\nSome Random Description about which I know nothing\n~~~" + expected_topic = "testing-gh / issue #9 idk man" + self.check_webhook("issues__unassigned", expected_topic, expected_message) + + def test_issue_unassigned_with_custom_topic_in_url(self) -> None: + self.url = self.build_webhook_url(topic="notifications") + expected_topic = "notifications" + expected_message = "sbansal1999 unassigned [issue #9 idk man](https://github.com/sbansal1999/testing-gh/issues/9) (assigned to tester987654):\n\n~~~ quote\nSome Random Description about which I know nothing\n~~~" + self.check_webhook("issues__unassigned", expected_topic, expected_message) + def test_membership_msg(self) -> None: expected_message = ( "baxterthehacker added [kdaigle](https://github.com/kdaigle) to the Contractors team."