|
111 | 111 | } |
112 | 112 | """ |
113 | 113 |
|
| 114 | +giteaJsonPushModifiedFiles = rb""" |
| 115 | +{ |
| 116 | + "secret": "pass", |
| 117 | + "ref": "refs/heads/master", |
| 118 | + "before": "92a8bf0e02b2146e6b35b71d6e08c376133b7fc9", |
| 119 | + "after": "ea07c3148db428876add8b312256239275c395fb", |
| 120 | + "compare_url": "https://git.example.com/Test/test/compare/92a8bf0e02b2146e6b35b71d6e08c376133b7fc9...ea07c3148db428876add8b312256239275c395fb", |
| 121 | + "commits": [ |
| 122 | + { |
| 123 | + "id": "ea07c3148db428876add8b312256239275c395fb", |
| 124 | + "message": "test123\n", |
| 125 | + "url": "https://git.example.com/Test/test/commit/ea07c3148db428876add8b312256239275c395fb", |
| 126 | + "author": { |
| 127 | + "name": "Test User", |
| 128 | + "email": "Test@example.com", |
| 129 | + "username": "Test" |
| 130 | + }, |
| 131 | + "committer": { |
| 132 | + "name": "Test User", |
| 133 | + "email": "Test@example.com", |
| 134 | + "username": "Test" |
| 135 | + }, |
| 136 | + "verification": null, |
| 137 | + "timestamp": "2021-03-09T20:12:19Z", |
| 138 | + "added": [ |
| 139 | + "testfile2" |
| 140 | + ], |
| 141 | + "removed": [ |
| 142 | + "testfile3" |
| 143 | + ], |
| 144 | + "modified": [ |
| 145 | + "testfile1" |
| 146 | + ] |
| 147 | + } |
| 148 | + ], |
| 149 | + "head_commit": null, |
| 150 | + "repository": { |
| 151 | + "id": 29, |
| 152 | + "owner": { |
| 153 | + "id": 1, |
| 154 | + "login": "Test", |
| 155 | + "full_name": "Test User", |
| 156 | + "email": "Test@example.com", |
| 157 | + "avatar_url": "https://git.example.com/user/avatar/Test/-1", |
| 158 | + "language": "en-US", |
| 159 | + "is_admin": true, |
| 160 | + "last_login": "2021-03-09T20:10:52Z", |
| 161 | + "created": "2018-06-05T09:41:06Z", |
| 162 | + "username": "Test" |
| 163 | + }, |
| 164 | + "name": "test", |
| 165 | + "full_name": "Test/test", |
| 166 | + "description": "", |
| 167 | + "empty": false, |
| 168 | + "private": true, |
| 169 | + "fork": false, |
| 170 | + "template": false, |
| 171 | + "parent": null, |
| 172 | + "mirror": false, |
| 173 | + "size": 17, |
| 174 | + "html_url": "https://git.example.com/Test/test", |
| 175 | + "ssh_url": "ssh://git@git.example.com/Test/test.git", |
| 176 | + "clone_url": "https://git.example.com/Test/test.git", |
| 177 | + "original_url": "", |
| 178 | + "website": "", |
| 179 | + "stars_count": 0, |
| 180 | + "forks_count": 0, |
| 181 | + "watchers_count": 1, |
| 182 | + "open_issues_count": 0, |
| 183 | + "open_pr_counter": 0, |
| 184 | + "release_counter": 0, |
| 185 | + "default_branch": "master", |
| 186 | + "archived": false, |
| 187 | + "created_at": "2019-03-03T17:26:23Z", |
| 188 | + "updated_at": "2021-03-09T20:12:20Z", |
| 189 | + "permissions": { |
| 190 | + "admin": true, |
| 191 | + "push": true, |
| 192 | + "pull": true |
| 193 | + }, |
| 194 | + "has_issues": true, |
| 195 | + "internal_tracker": { |
| 196 | + "enable_time_tracker": false, |
| 197 | + "allow_only_contributors_to_track_time": true, |
| 198 | + "enable_issue_dependencies": true |
| 199 | + }, |
| 200 | + "has_wiki": true, |
| 201 | + "has_pull_requests": true, |
| 202 | + "has_projects": false, |
| 203 | + "ignore_whitespace_conflicts": false, |
| 204 | + "allow_merge_commits": true, |
| 205 | + "allow_rebase": true, |
| 206 | + "allow_rebase_explicit": true, |
| 207 | + "allow_squash_merge": true, |
| 208 | + "avatar_url": "", |
| 209 | + "internal": false |
| 210 | + }, |
| 211 | + "pusher": { |
| 212 | + "id": 1, |
| 213 | + "login": "Test", |
| 214 | + "full_name": "Test User", |
| 215 | + "email": "Test@example.com", |
| 216 | + "avatar_url": "https://git.example.com/user/avatar/Test/-1", |
| 217 | + "language": "en-US", |
| 218 | + "is_admin": true, |
| 219 | + "last_login": "2021-03-09T20:10:52Z", |
| 220 | + "created": "2018-06-05T09:41:06Z", |
| 221 | + "username": "Test" |
| 222 | + }, |
| 223 | + "sender": { |
| 224 | + "id": 1, |
| 225 | + "login": "Test", |
| 226 | + "full_name": "Test User", |
| 227 | + "email": "Test@example.com", |
| 228 | + "avatar_url": "https://git.example.com/user/avatar/Test/-1", |
| 229 | + "language": "en-US", |
| 230 | + "is_admin": true, |
| 231 | + "last_login": "2021-03-09T20:10:52Z", |
| 232 | + "created": "2018-06-05T09:41:06Z", |
| 233 | + "username": "Test" |
| 234 | + } |
| 235 | +} |
| 236 | +""" |
| 237 | + |
114 | 238 | giteaInvalidSecretPush = rb""" |
115 | 239 | { |
116 | 240 | "secret": "invalidSecret", |
@@ -764,6 +888,23 @@ def checkChangesFromPush(self, codebase=None): |
764 | 888 | "revlink"], |
765 | 889 | "https://git.example.com/max/webhook_test/commit/9d7157cc4a137b3e1dfe92750ccfb1bbad239f99") |
766 | 890 |
|
| 891 | + def checkFileChanges(self, codebase=None): |
| 892 | + self.assertEqual(len(self.changeHook.master.data.updates.changesAdded), 1) |
| 893 | + change = self.changeHook.master.data.updates.changesAdded[0] |
| 894 | + self.assertEqual(change['repository'], 'ssh://git@git.example.com/Test/test.git') |
| 895 | + |
| 896 | + self.assertEqual( |
| 897 | + change["author"], "Test User <Test@example.com>") |
| 898 | + self.assertEqual( |
| 899 | + change["revision"], 'ea07c3148db428876add8b312256239275c395fb') |
| 900 | + self.assertEqual( |
| 901 | + change["comments"], "test123\n") |
| 902 | + self.assertEqual(change["branch"], "master") |
| 903 | + self.assertEqual(change[ |
| 904 | + "revlink"], |
| 905 | + "https://git.example.com/Test/test/commit/ea07c3148db428876add8b312256239275c395fb") |
| 906 | + self.assertEqual(change["files"], ["testfile2", "testfile1", "testfile3"]) |
| 907 | + |
767 | 908 | def checkChangesFromPullRequest(self, codebase=None): |
768 | 909 | self.assertEqual(len(self.changeHook.master.data.updates.changesAdded), 1) |
769 | 910 | change = self.changeHook.master.data.updates.changesAdded[0] |
@@ -804,6 +945,15 @@ def testPushEvent(self): |
804 | 945 | res = yield self.request.test_render(self.changeHook) |
805 | 946 | self.checkChangesFromPush(res) |
806 | 947 |
|
| 948 | + @defer.inlineCallbacks |
| 949 | + def testChangedFiles(self): |
| 950 | + self.request = FakeRequest(content=giteaJsonPushModifiedFiles) |
| 951 | + self.request.uri = b'/change_hook/gitea' |
| 952 | + self.request.method = b'POST' |
| 953 | + self.request.received_headers[_HEADER_EVENT_TYPE] = b"push" |
| 954 | + res = yield self.request.test_render(self.changeHook) |
| 955 | + self.checkFileChanges(res) |
| 956 | + |
807 | 957 | @defer.inlineCallbacks |
808 | 958 | def testPullRequestEvent(self): |
809 | 959 | self.request = FakeRequest(content=giteaJsonPullRequestPayload) |
|
0 commit comments