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

Side by Side Diff: appengine/findit/common/test/repo_util_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
(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 common import repo_util
12
13
14 class RepoUtilTest(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,
76 code_review_url) = repo_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(repo_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 = repo_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 = repo_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 = repo_util.GetRevertedRevision(message)
135 self.assertIsNone(reverted_revision)
136
137 def testGetRepoToCloneUrlDict(self):
138 def _MockUrlOpen(*_):
139 output = StringIO.StringIO()
140 repo_dict = {
141 'proj1': {
142 'clone_url': 'https://chromium.googlesource.com/proj1',
143 'description': 'blabla1',
144 'name': 'proj1'
145 },
146 'proj2': {
147 'clone_url': 'https://chromium.googlesource.com/proj2',
148 'description': 'blabla2',
149 'name': 'proj2'
150 }
151 }
152 output.write(')]}\'\n')
153 output.write(json.dumps(repo_dict))
154 output.seek(0)
155 return output
156
157 self.mock(urllib2, 'urlopen', _MockUrlOpen)
158
159 expected_repo_to_clone_url = {
160 'proj1': 'https://chromium.googlesource.com/proj1',
161 'proj2': 'https://chromium.googlesource.com/proj2'
162 }
163
164 self.assertEqual(repo_util.GetRepoToCloneUrlDict('host_url'),
165 expected_repo_to_clone_url)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698