Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(244)

Side by Side Diff: appengine/findit/common/test/git_repository_test.py

Issue 2435863003: [Findit] Add local git parsers. (Closed)
Patch Set: Fix nits. Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 # Copyright 2014 The Chromium Authors. All rights reserved. 1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import base64 5 import base64
6 from datetime import datetime 6 from datetime import datetime
7 import json 7 import json
8 import re 8 import re
9 9
10 from testing_utils import testing 10 from testing_utils import testing
(...skipping 277 matching lines...) Expand 10 before | Expand all | Expand 10 after
288 self.http_client_for_git = HttpClientForGit() 288 self.http_client_for_git = HttpClientForGit()
289 self.repo_url = 'https://repo.test' 289 self.repo_url = 'https://repo.test'
290 self.git_repo = git_repository.GitRepository(self.repo_url, 290 self.git_repo = git_repository.GitRepository(self.repo_url,
291 self.http_client_for_git) 291 self.http_client_for_git)
292 292
293 def testGitRepositoryPropertySetters(self): 293 def testGitRepositoryPropertySetters(self):
294 http_client_for_git = HttpClientForGit() 294 http_client_for_git = HttpClientForGit()
295 git_repo = git_repository.GitRepository(http_client=http_client_for_git) 295 git_repo = git_repository.GitRepository(http_client=http_client_for_git)
296 git_repo.repo_url = 'https://repo' 296 git_repo.repo_url = 'https://repo'
297 self.assertEqual(git_repo.repo_url, 'https://repo') 297 self.assertEqual(git_repo.repo_url, 'https://repo')
298
299 self.assertEqual(git_repo. http_client, http_client_for_git) 298 self.assertEqual(git_repo. http_client, http_client_for_git)
300 299
301 def testExtractCommitPositionAndCodeReviewUrl(self):
302 testcases = [
303 {
304 'message':
305 'balabala...\n'
306 '\n'
307 'BUG=604502\n'
308 '\n'
309 'Review-Url: https://codereview.chromium.org/1927593004\n'
310 'Cr-Commit-Position: refs/heads/master@{#390254}\n',
311 'commit_position': 390254,
312 'code_review_url': 'https://codereview.chromium.org/1927593004',
313 },
314 {
315 'message':
316 'balabala...\n'
317 '\n'
318 'BUG=409934\n'
319 '\n'
320 'Review URL: https://codereview.chromium.org/547753003\n'
321 '\n'
322 'Cr-Commit-Position: refs/heads/master@{#293661}',
323 'commit_position': 293661,
324 'code_review_url': 'https://codereview.chromium.org/547753003',
325 },
326 {
327 'message':
328 'balabala...\n'
329 '\n'
330 'balabala...\n'
331 '\n'
332 'R=test4@chromium.org\n'
333 '\n'
334 'Review URL: https://codereview.chromium.org/469523002\n'
335 '\n'
336 'Cr-Commit-Position: refs/heads/master@{#289120}',
337 'commit_position': 289120,
338 'code_review_url': 'https://codereview.chromium.org/469523002',
339 },
340 {
341 'message': None,
342 'commit_position': None,
343 'code_review_url': None
344 }
345 ]
346
347 for testcase in testcases:
348 (commit_position,
349 code_review_url) = self.git_repo.ExtractCommitPositionAndCodeReviewUrl(
350 testcase['message'])
351 self.assertEqual(commit_position, testcase['commit_position'])
352 self.assertEqual(code_review_url, testcase['code_review_url'])
353
354 def testEndingSlashInRepoUrl(self): 300 def testEndingSlashInRepoUrl(self):
355 git_repo1 = git_repository.GitRepository(self.repo_url, 301 git_repo1 = git_repository.GitRepository(self.repo_url,
356 self.http_client_for_git) 302 self.http_client_for_git)
357 self.assertEqual(self.repo_url, git_repo1.repo_url) 303 self.assertEqual(self.repo_url, git_repo1.repo_url)
358 304
359 git_repo2 = git_repository.GitRepository('%s/' % self.repo_url, 305 git_repo2 = git_repository.GitRepository('%s/' % self.repo_url,
360 self.http_client_for_git) 306 self.http_client_for_git)
361 self.assertEqual(self.repo_url, git_repo2.repo_url) 307 self.assertEqual(self.repo_url, git_repo2.repo_url)
362 308
363 def testMalformattedJsonReponse(self): 309 def testMalformattedJsonReponse(self):
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
423 source = self.git_repo.GetSource(path, git_revision) 369 source = self.git_repo.GetSource(path, git_revision)
424 self.assertEqual(original_source, source) 370 self.assertEqual(original_source, source)
425 371
426 def testTimeConversion(self): 372 def testTimeConversion(self):
427 datetime_with_timezone = 'Wed Jul 22 19:35:32 2014 +0400' 373 datetime_with_timezone = 'Wed Jul 22 19:35:32 2014 +0400'
428 expected_datetime = datetime(2014, 7, 22, 15, 35, 32) 374 expected_datetime = datetime(2014, 7, 22, 15, 35, 32)
429 utc_datetime = self.git_repo._GetDateTimeFromString(datetime_with_timezone) 375 utc_datetime = self.git_repo._GetDateTimeFromString(datetime_with_timezone)
430 376
431 self.assertEqual(expected_datetime, utc_datetime) 377 self.assertEqual(expected_datetime, utc_datetime)
432 378
433 def testGetRevertedRevision(self):
434 message = (
435 'Revert of test1\n\nReason for revert:\nrevert test1\n\n'
436 'Original issue\'s description:\n> test 1\n>\n'
437 '> description of test 1.\n>\n> BUG=none\n> TEST=none\n'
438 '> R=test@chromium.org\n> TBR=test@chromium.org\n>\n'
439 '> Committed: https://chromium.googlesource.com/chromium/src/+/'
440 'c9cc182781484f9010f062859cda048afefefefe\n'
441 '> Cr-Commit-Position: refs/heads/master@{#341992}\n\n'
442 'TBR=test@chromium.org\nNOPRESUBMIT=true\nNOTREECHECKS=true\n'
443 'NOTRY=true\nBUG=none\n\n'
444 'Review URL: https://codereview.chromium.org/1278653002\n\n'
445 'Cr-Commit-Position: refs/heads/master@{#342013}\n')
446
447 reverted_revision = self.git_repo.GetRevertedRevision(message)
448 self.assertEqual('c9cc182781484f9010f062859cda048afefefefe',
449 reverted_revision)
450
451 def testGetRevertedRevisionRevertOfRevert(self):
452 message = (
453 'Revert of Revert\n\nReason for revert:\nRevert of revert\n\n'
454 'Original issue\'s description:\n> test case of revert of revert\n>\n'
455 '> Reason for revert:\n> reason\n>\n> Original issue\'s description:\n'
456 '> > base cl\n> >\n> > R=kalman\n> > BUG=424661\n> >\n'
457 '> > Committed: https://crrev.com/34ea66b8ac1d56dadd670431063857ffdd\n'
458 '> > Cr-Commit-Position: refs/heads/master@{#326953}\n>\n'
459 '> TBR=test@chromium.org\n> NOPRESUBMIT=true\n'
460 '> NOTREECHECKS=true\n> NOTRY=true\n> BUG=424661\n>\n'
461 '> Committed: https://crrev.com/76a7e3446188256ca240dc31f78de29511a'
462 '2c322\n'
463 '> Cr-Commit-Position: refs/heads/master@{#327021}\n\n'
464 'TBR=test@chromium.org\nNOPRESUBMIT=true\n'
465 'NOTREECHECKS=true\nNOTRY=true\nBUG=424661\n\n'
466 'Review URL: https://codereview.chromium.org/1161773008\n\n'
467 'Cr-Commit-Position: refs/heads/master@{#332062}\n')
468
469 reverted_revision = self.git_repo.GetRevertedRevision(message)
470 self.assertEqual('76a7e3446188256ca240dc31f78de29511a2c322',
471 reverted_revision)
472
473 def testGetRevertedRevisionNoRevertedCL(self):
474 message = (
475 'Test for not revert cl\n\n'
476 'TBR=test@chromium.org\nNOPRESUBMIT=true\n'
477 'NOTREECHECKS=true\nNOTRY=true\nBUG=424661\n\n'
478 'Review URL: https://codereview.chromium.org/1161773008\n\n'
479 'Cr-Commit-Position: refs/heads/master@{#332062}\n')
480
481 reverted_revision = self.git_repo.GetRevertedRevision(message)
482 self.assertIsNone(reverted_revision)
483
484 def testGetCommitsBetweenRevisions(self): 379 def testGetCommitsBetweenRevisions(self):
485 def _MockSendRequestForJsonResponse(*_): 380 def _MockSendRequestForJsonResponse(*_):
486 return { 381 return {
487 'log': [ 382 'log': [
488 {'commit': '3'}, 383 {'commit': '3'},
489 {'commit': '2'}, 384 {'commit': '2'},
490 {'commit': '1'}] 385 {'commit': '1'}]
491 } 386 }
492 self.mock(git_repository.GitRepository, '_SendRequestForJsonResponse', 387 self.mock(git_repository.GitRepository, '_SendRequestForJsonResponse',
493 _MockSendRequestForJsonResponse) 388 _MockSendRequestForJsonResponse)
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
573 468
574 changelogs = self.git_repo.GetChangeLogs('0', '2') 469 changelogs = self.git_repo.GetChangeLogs('0', '2')
575 470
576 self.assertEqual(len(changelogs), 2) 471 self.assertEqual(len(changelogs), 2)
577 472
578 def testGetWrappedGitRepositoryClass(self): 473 def testGetWrappedGitRepositoryClass(self):
579 repo = git_repository.GitRepository('http://repo_url', HttpClientForGit()) 474 repo = git_repository.GitRepository('http://repo_url', HttpClientForGit())
580 475
581 self.assertEqual(repo.repo_url, 'http://repo_url') 476 self.assertEqual(repo.repo_url, 'http://repo_url')
582 self.assertTrue(isinstance(repo.http_client, HttpClientForGit)) 477 self.assertTrue(isinstance(repo.http_client, HttpClientForGit))
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698