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