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

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

Powered by Google App Engine
This is Rietveld 408576698