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

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, 2 months 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 281 matching lines...) Expand 10 before | Expand all | Expand 10 after
292 292
293 def testGitRepositoryPropertySetters(self): 293 def testGitRepositoryPropertySetters(self):
294 git_repo = git_repository.GitRepository() 294 git_repo = git_repository.GitRepository()
295 git_repo.repo_url = 'https://repo' 295 git_repo.repo_url = 'https://repo'
296 self.assertEqual(git_repo.repo_url, 'https://repo') 296 self.assertEqual(git_repo.repo_url, 'https://repo')
297 297
298 http_client_for_git = HttpClientForGit() 298 http_client_for_git = HttpClientForGit()
299 git_repo.http_client = http_client_for_git 299 git_repo.http_client = http_client_for_git
300 self.assertEqual(git_repo. http_client, http_client_for_git) 300 self.assertEqual(git_repo. http_client, http_client_for_git)
301 301
302 def testExtractCommitPositionAndCodeReviewUrl(self):
303 testcases = [
304 {
305 'message':
306 'balabala...\n'
307 '\n'
308 'BUG=604502\n'
309 '\n'
310 'Review-Url: https://codereview.chromium.org/1927593004\n'
311 'Cr-Commit-Position: refs/heads/master@{#390254}\n',
312 'commit_position': 390254,
313 'code_review_url': 'https://codereview.chromium.org/1927593004',
314 },
315 {
316 'message':
317 'balabala...\n'
318 '\n'
319 'BUG=409934\n'
320 '\n'
321 'Review URL: https://codereview.chromium.org/547753003\n'
322 '\n'
323 'Cr-Commit-Position: refs/heads/master@{#293661}',
324 'commit_position': 293661,
325 'code_review_url': 'https://codereview.chromium.org/547753003',
326 },
327 {
328 'message':
329 'balabala...\n'
330 '\n'
331 'balabala...\n'
332 '\n'
333 'R=test4@chromium.org\n'
334 '\n'
335 'Review URL: https://codereview.chromium.org/469523002\n'
336 '\n'
337 'Cr-Commit-Position: refs/heads/master@{#289120}',
338 'commit_position': 289120,
339 'code_review_url': 'https://codereview.chromium.org/469523002',
340 },
341 {
342 'message': None,
343 'commit_position': None,
344 'code_review_url': None
345 }
346 ]
347
348 for testcase in testcases:
349 (commit_position,
350 code_review_url) = self.git_repo.ExtractCommitPositionAndCodeReviewUrl(
351 testcase['message'])
352 self.assertEqual(commit_position, testcase['commit_position'])
353 self.assertEqual(code_review_url, testcase['code_review_url'])
354
355 def testEndingSlashInRepoUrl(self): 302 def testEndingSlashInRepoUrl(self):
356 git_repo1 = git_repository.GitRepository(self.repo_url, 303 git_repo1 = git_repository.GitRepository(self.repo_url,
357 self.http_client_for_git) 304 self.http_client_for_git)
358 self.assertEqual(self.repo_url, git_repo1.repo_url) 305 self.assertEqual(self.repo_url, git_repo1.repo_url)
359 306
360 git_repo2 = git_repository.GitRepository('%s/' % self.repo_url, 307 git_repo2 = git_repository.GitRepository('%s/' % self.repo_url,
361 self.http_client_for_git) 308 self.http_client_for_git)
362 self.assertEqual(self.repo_url, git_repo2.repo_url) 309 self.assertEqual(self.repo_url, git_repo2.repo_url)
363 310
364 def testMalformattedJsonReponse(self): 311 def testMalformattedJsonReponse(self):
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
424 source = self.git_repo.GetSource(path, git_revision) 371 source = self.git_repo.GetSource(path, git_revision)
425 self.assertEqual(original_source, source) 372 self.assertEqual(original_source, source)
426 373
427 def testTimeConversion(self): 374 def testTimeConversion(self):
428 datetime_with_timezone = 'Wed Jul 22 19:35:32 2014 +0400' 375 datetime_with_timezone = 'Wed Jul 22 19:35:32 2014 +0400'
429 expected_datetime = datetime(2014, 7, 22, 15, 35, 32) 376 expected_datetime = datetime(2014, 7, 22, 15, 35, 32)
430 utc_datetime = self.git_repo._GetDateTimeFromString(datetime_with_timezone) 377 utc_datetime = self.git_repo._GetDateTimeFromString(datetime_with_timezone)
431 378
432 self.assertEqual(expected_datetime, utc_datetime) 379 self.assertEqual(expected_datetime, utc_datetime)
433 380
434 def testGetRevertedRevision(self):
435 message = (
436 'Revert of test1\n\nReason for revert:\nrevert test1\n\n'
437 'Original issue\'s description:\n> test 1\n>\n'
438 '> description of test 1.\n>\n> BUG=none\n> TEST=none\n'
439 '> R=test@chromium.org\n> TBR=test@chromium.org\n>\n'
440 '> Committed: https://chromium.googlesource.com/chromium/src/+/'
441 'c9cc182781484f9010f062859cda048afefefefe\n'
442 '> Cr-Commit-Position: refs/heads/master@{#341992}\n\n'
443 'TBR=test@chromium.org\nNOPRESUBMIT=true\nNOTREECHECKS=true\n'
444 'NOTRY=true\nBUG=none\n\n'
445 'Review URL: https://codereview.chromium.org/1278653002\n\n'
446 'Cr-Commit-Position: refs/heads/master@{#342013}\n')
447
448 reverted_revision = self.git_repo.GetRevertedRevision(message)
449 self.assertEqual('c9cc182781484f9010f062859cda048afefefefe',
450 reverted_revision)
451
452 def testGetRevertedRevisionRevertOfRevert(self):
453 message = (
454 'Revert of Revert\n\nReason for revert:\nRevert of revert\n\n'
455 'Original issue\'s description:\n> test case of revert of revert\n>\n'
456 '> Reason for revert:\n> reason\n>\n> Original issue\'s description:\n'
457 '> > base cl\n> >\n> > R=kalman\n> > BUG=424661\n> >\n'
458 '> > Committed: https://crrev.com/34ea66b8ac1d56dadd670431063857ffdd\n'
459 '> > Cr-Commit-Position: refs/heads/master@{#326953}\n>\n'
460 '> TBR=test@chromium.org\n> NOPRESUBMIT=true\n'
461 '> NOTREECHECKS=true\n> NOTRY=true\n> BUG=424661\n>\n'
462 '> Committed: https://crrev.com/76a7e3446188256ca240dc31f78de29511a'
463 '2c322\n'
464 '> Cr-Commit-Position: refs/heads/master@{#327021}\n\n'
465 'TBR=test@chromium.org\nNOPRESUBMIT=true\n'
466 'NOTREECHECKS=true\nNOTRY=true\nBUG=424661\n\n'
467 'Review URL: https://codereview.chromium.org/1161773008\n\n'
468 'Cr-Commit-Position: refs/heads/master@{#332062}\n')
469
470 reverted_revision = self.git_repo.GetRevertedRevision(message)
471 self.assertEqual('76a7e3446188256ca240dc31f78de29511a2c322',
472 reverted_revision)
473
474 def testGetRevertedRevisionNoRevertedCL(self):
475 message = (
476 'Test for not revert cl\n\n'
477 'TBR=test@chromium.org\nNOPRESUBMIT=true\n'
478 'NOTREECHECKS=true\nNOTRY=true\nBUG=424661\n\n'
479 'Review URL: https://codereview.chromium.org/1161773008\n\n'
480 'Cr-Commit-Position: refs/heads/master@{#332062}\n')
481
482 reverted_revision = self.git_repo.GetRevertedRevision(message)
483 self.assertIsNone(reverted_revision)
484
485 def testGetCommitsBetweenRevisions(self): 381 def testGetCommitsBetweenRevisions(self):
486 def _MockSendRequestForJsonResponse(*_): 382 def _MockSendRequestForJsonResponse(*_):
487 return { 383 return {
488 'log': [ 384 'log': [
489 {'commit': '3'}, 385 {'commit': '3'},
490 {'commit': '2'}, 386 {'commit': '2'},
491 {'commit': '1'}] 387 {'commit': '1'}]
492 } 388 }
493 self.mock(git_repository.GitRepository, '_SendRequestForJsonResponse', 389 self.mock(git_repository.GitRepository, '_SendRequestForJsonResponse',
494 _MockSendRequestForJsonResponse) 390 _MockSendRequestForJsonResponse)
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
574 470
575 changelogs = self.git_repo.GetChangeLogs('0', '2') 471 changelogs = self.git_repo.GetChangeLogs('0', '2')
576 472
577 self.assertEqual(len(changelogs), 2) 473 self.assertEqual(len(changelogs), 2)
578 474
579 def testGetWrappedGitRepositoryClass(self): 475 def testGetWrappedGitRepositoryClass(self):
580 repo = git_repository.GitRepository('http://repo_url', HttpClientForGit()) 476 repo = git_repository.GitRepository('http://repo_url', HttpClientForGit())
581 477
582 self.assertEqual(repo.repo_url, 'http://repo_url') 478 self.assertEqual(repo.repo_url, 'http://repo_url')
583 self.assertTrue(isinstance(repo.http_client, HttpClientForGit)) 479 self.assertTrue(isinstance(repo.http_client, HttpClientForGit))
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698