|
24 | 24 | GIT_EVENT_MERGE_COMMIT, |
25 | 25 | GIT_EVENT_ACTION_ADDED, |
26 | 26 | GIT_EVENT_ACTION_MODIFIED, |
27 | | - GIT_EVENT_ACTION_REPLACED) |
| 27 | + GIT_EVENT_ACTION_REPLACED, |
| 28 | + GIT_EVENT_ACTION_COPIED) |
28 | 29 |
|
29 | 30 |
|
30 | 31 | class GitEventizerTestCase(unittest.TestCase): |
@@ -253,6 +254,105 @@ def test_eventize_item_no_uuid(self): |
253 | 254 | _ = eventizer.eventize_item(raw_item) |
254 | 255 | self.assertEqual(str(context.exception), "'uuid' attribute not found on item.") |
255 | 256 |
|
| 257 | + def test_eventize_commit_copy_files(self): |
| 258 | + """Check if events with multiple copied files are generated correctly with different ids""" |
| 259 | + |
| 260 | + eventizer = GitEventizer() |
| 261 | + |
| 262 | + raw_item = { |
| 263 | + "backend_name": "Git", |
| 264 | + "backend_version": "1.0.1", |
| 265 | + "category": "commit", |
| 266 | + "classified_fields_filtered": None, |
| 267 | + "data": { |
| 268 | + "Author": "Tom <tom@example.com>", |
| 269 | + "AuthorDate": "Mon Apr 29 16:25:56 2019 -0700", |
| 270 | + "Commit": "GitHub <noreply@github.com>", |
| 271 | + "CommitDate": "Mon Apr 29 16:25:56 2019 -0700", |
| 272 | + "commit": "7882c41g607ee5273da9637da0bb20ca7634cb83", |
| 273 | + "files": [ |
| 274 | + { |
| 275 | + "action": "C100", |
| 276 | + "added": "0", |
| 277 | + "file": "packages/react-events/FocusScope.js", |
| 278 | + "indexes": [ |
| 279 | + "2ff785ef79", |
| 280 | + "2ff785ef79" |
| 281 | + ], |
| 282 | + "modes": [ |
| 283 | + "100644", |
| 284 | + "100644" |
| 285 | + ], |
| 286 | + "newfile": "packages/react-events/drag.js", |
| 287 | + "removed": "0" |
| 288 | + }, |
| 289 | + { |
| 290 | + "action": "C100", |
| 291 | + "added": "0", |
| 292 | + "file": "packages/react-events/FocusScope.js", |
| 293 | + "indexes": [ |
| 294 | + "2ff785ef79", |
| 295 | + "2ff785ef79" |
| 296 | + ], |
| 297 | + "modes": [ |
| 298 | + "100644", |
| 299 | + "100644" |
| 300 | + ], |
| 301 | + "newfile": "packages/react-events/focus-scope.js", |
| 302 | + "removed": "0" |
| 303 | + } |
| 304 | + ], |
| 305 | + "message": "Sample message for commit", |
| 306 | + "parents": [ |
| 307 | + "43c4e5f348eb5704464886e2dc3221e347041b82" |
| 308 | + ], |
| 309 | + "refs": [] |
| 310 | + }, |
| 311 | + "offset": "7882c41g607ee5273da9637da0bb20ca7634cb83", |
| 312 | + "origin": "https://example.git", |
| 313 | + "perceval_version": "1.2.2", |
| 314 | + "search_fields": { |
| 315 | + "item_id": "7882c41g607ee5273da9637da0bb20ca7634cb83" |
| 316 | + }, |
| 317 | + "tag": "https://example.git", |
| 318 | + "timestamp": 1.748521396234826E9, |
| 319 | + "updated_on": 1.556580356E9, |
| 320 | + "uuid": "6b4393b86512afc2e6757a6781e6018a661a72b0" |
| 321 | + } |
| 322 | + |
| 323 | + events = eventizer.eventize_item(raw_item) |
| 324 | + |
| 325 | + self.assertEqual(len(events), 3) |
| 326 | + |
| 327 | + commit_event = events[0] |
| 328 | + self.assertEqual(commit_event['id'], '6b4393b86512afc2e6757a6781e6018a661a72b0') |
| 329 | + self.assertEqual(commit_event['type'], GIT_EVENT_COMMIT) |
| 330 | + self.assertEqual(commit_event['source'], 'https://example.git') |
| 331 | + self.assertEqual(commit_event['time'], 1556580356.0) |
| 332 | + self.assertEqual(commit_event.data['message'], "Sample message for commit") |
| 333 | + |
| 334 | + action_event = events[1] |
| 335 | + self.assertEqual(action_event['id'], 'b911ec8df7e804b40dddb5f402e82ae816283e9c') |
| 336 | + self.assertEqual(action_event['linked_event'], '6b4393b86512afc2e6757a6781e6018a661a72b0') |
| 337 | + self.assertEqual(action_event['type'], GIT_EVENT_ACTION_COPIED) |
| 338 | + self.assertEqual(action_event['source'], 'https://example.git') |
| 339 | + self.assertEqual(action_event['time'], 1556580356.0) |
| 340 | + self.assertEqual(action_event.data['filename'], 'packages/react-events/FocusScope.js') |
| 341 | + self.assertEqual(action_event.data['new_filename'], 'packages/react-events/drag.js') |
| 342 | + self.assertEqual(action_event.data['added_lines'], '0') |
| 343 | + self.assertEqual(action_event.data['deleted_lines'], '0') |
| 344 | + |
| 345 | + action_event = events[2] |
| 346 | + self.assertEqual(action_event['id'], '5e1d30f0fd85e34cb08987bbb202201a31769b39') |
| 347 | + self.assertEqual(action_event['linked_event'], '6b4393b86512afc2e6757a6781e6018a661a72b0') |
| 348 | + self.assertEqual(action_event['type'], GIT_EVENT_ACTION_COPIED) |
| 349 | + self.assertEqual(action_event['source'], 'https://example.git') |
| 350 | + self.assertEqual(action_event['time'], 1556580356.0) |
| 351 | + self.assertEqual(action_event.data['filename'], 'packages/react-events/FocusScope.js') |
| 352 | + self.assertEqual(action_event.data['new_filename'], 'packages/react-events/focus-scope.js') |
| 353 | + self.assertEqual(action_event.data['added_lines'], '0') |
| 354 | + self.assertEqual(action_event.data['deleted_lines'], '0') |
| 355 | + |
256 | 356 |
|
257 | 357 | if __name__ == '__main__': |
258 | 358 | unittest.main() |
0 commit comments