| OLD | NEW |
| (Empty) |
| 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 | |
| 3 # found in the LICENSE file. | |
| 4 | |
| 5 import json | |
| 6 import StringIO | |
| 7 from testing_utils import testing | |
| 8 import textwrap | |
| 9 import urllib2 | |
| 10 | |
| 11 from lib.gitiles import commit_util | |
| 12 | |
| 13 | |
| 14 class CodeReviewUtilTest(testing.AppengineTestCase): | |
| 15 | |
| 16 def testExtractCommitPositionAndCodeReviewUrl(self): | |
| 17 testcases = [ | |
| 18 { | |
| 19 'message': | |
| 20 'balabala...\n' | |
| 21 '\n' | |
| 22 'BUG=604502\n' | |
| 23 '\n' | |
| 24 'Review-Url: https://codereview.chromium.org/1927593004\n' | |
| 25 'Cr-Commit-Position: refs/heads/master@{#390254}\n', | |
| 26 'commit_position': 390254, | |
| 27 'code_review_url': 'https://codereview.chromium.org/1927593004', | |
| 28 }, | |
| 29 { | |
| 30 'message': | |
| 31 'balabala...\n' | |
| 32 '\n' | |
| 33 'BUG=409934\n' | |
| 34 '\n' | |
| 35 'Review URL: https://codereview.chromium.org/547753003\n' | |
| 36 '\n' | |
| 37 'Cr-Commit-Position: refs/heads/master@{#293661}', | |
| 38 'commit_position': 293661, | |
| 39 'code_review_url': 'https://codereview.chromium.org/547753003', | |
| 40 }, | |
| 41 { | |
| 42 'message': | |
| 43 'balabala...\n' | |
| 44 '\n' | |
| 45 'balabala...\n' | |
| 46 '\n' | |
| 47 'R=test4@chromium.org\n' | |
| 48 '\n' | |
| 49 'Review URL: https://codereview.chromium.org/469523002\n' | |
| 50 '\n' | |
| 51 'Cr-Commit-Position: refs/heads/master@{#289120}', | |
| 52 'commit_position': 289120, | |
| 53 'code_review_url': 'https://codereview.chromium.org/469523002', | |
| 54 }, | |
| 55 { | |
| 56 'message': | |
| 57 'balabala...\n' | |
| 58 '\n' | |
| 59 'balabala...\n' | |
| 60 '\n' | |
| 61 'R=test4@chromium.org\n' | |
| 62 '\n' | |
| 63 'Review URL: https://codereview.chromium.org/469523002\n', | |
| 64 'commit_position': None, | |
| 65 'code_review_url': 'https://codereview.chromium.org/469523002', | |
| 66 }, | |
| 67 { | |
| 68 'message': None, | |
| 69 'commit_position': None, | |
| 70 'code_review_url': None | |
| 71 } | |
| 72 ] | |
| 73 | |
| 74 for testcase in testcases: | |
| 75 commit_position, code_review_url = ( | |
| 76 commit_util.ExtractCommitPositionAndCodeReviewUrl( | |
| 77 testcase['message'])) | |
| 78 self.assertEqual(commit_position, testcase['commit_position']) | |
| 79 self.assertEqual(code_review_url, testcase['code_review_url']) | |
| 80 | |
| 81 def testNormalizeEmail(self): | |
| 82 self.assertEqual(commit_util.NormalizeEmail( | |
| 83 'test@chromium.org@bbb929c8-8fbe-4397-9dbb-9b2b20218538'), | |
| 84 'test@chromium.org') | |
| 85 | |
| 86 def testGetRevertedRevision(self): | |
| 87 message = ( | |
| 88 'Revert of test1\n\nReason for revert:\nrevert test1\n\n' | |
| 89 'Original issue\'s description:\n> test 1\n>\n' | |
| 90 '> description of test 1.\n>\n> BUG=none\n> TEST=none\n' | |
| 91 '> R=test@chromium.org\n> TBR=test@chromium.org\n>\n' | |
| 92 '> Committed: https://chromium.googlesource.com/chromium/src/+/' | |
| 93 'c9cc182781484f9010f062859cda048afefefefe\n' | |
| 94 '> Cr-Commit-Position: refs/heads/master@{#341992}\n\n' | |
| 95 'TBR=test@chromium.org\nNOPRESUBMIT=true\nNOTREECHECKS=true\n' | |
| 96 'NOTRY=true\nBUG=none\n\n' | |
| 97 'Review URL: https://codereview.chromium.org/1278653002\n\n' | |
| 98 'Cr-Commit-Position: refs/heads/master@{#342013}\n') | |
| 99 | |
| 100 reverted_revision = commit_util.GetRevertedRevision(message) | |
| 101 self.assertEqual('c9cc182781484f9010f062859cda048afefefefe', | |
| 102 reverted_revision) | |
| 103 | |
| 104 def testGetRevertedRevisionRevertOfRevert(self): | |
| 105 message = ( | |
| 106 'Revert of Revert\n\nReason for revert:\nRevert of revert\n\n' | |
| 107 'Original issue\'s description:\n> test case of revert of revert\n>\n' | |
| 108 '> Reason for revert:\n> reason\n>\n> Original issue\'s description:\n' | |
| 109 '> > base cl\n> >\n> > R=kalman\n> > BUG=424661\n> >\n' | |
| 110 '> > Committed: https://crrev.com/34ea66b8ac1d56dadd670431063857ffdd\n' | |
| 111 '> > Cr-Commit-Position: refs/heads/master@{#326953}\n>\n' | |
| 112 '> TBR=test@chromium.org\n> NOPRESUBMIT=true\n' | |
| 113 '> NOTREECHECKS=true\n> NOTRY=true\n> BUG=424661\n>\n' | |
| 114 '> Committed: https://crrev.com/76a7e3446188256ca240dc31f78de29511a' | |
| 115 '2c322\n' | |
| 116 '> Cr-Commit-Position: refs/heads/master@{#327021}\n\n' | |
| 117 'TBR=test@chromium.org\nNOPRESUBMIT=true\n' | |
| 118 'NOTREECHECKS=true\nNOTRY=true\nBUG=424661\n\n' | |
| 119 'Review URL: https://codereview.chromium.org/1161773008\n\n' | |
| 120 'Cr-Commit-Position: refs/heads/master@{#332062}\n') | |
| 121 | |
| 122 reverted_revision = commit_util.GetRevertedRevision(message) | |
| 123 self.assertEqual('76a7e3446188256ca240dc31f78de29511a2c322', | |
| 124 reverted_revision) | |
| 125 | |
| 126 def testGetRevertedRevisionNoRevertedCL(self): | |
| 127 message = ( | |
| 128 'Test for not revert cl\n\n' | |
| 129 'TBR=test@chromium.org\nNOPRESUBMIT=true\n' | |
| 130 'NOTREECHECKS=true\nNOTRY=true\nBUG=424661\n\n' | |
| 131 'Review URL: https://codereview.chromium.org/1161773008\n\n' | |
| 132 'Cr-Commit-Position: refs/heads/master@{#332062}\n') | |
| 133 | |
| 134 reverted_revision = commit_util.GetRevertedRevision(message) | |
| 135 self.assertIsNone(reverted_revision) | |
| OLD | NEW |