OLD | NEW |
1 #!/usr/bin/python | 1 #!/usr/bin/python |
2 # Copyright (c) 2010 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2010 The Chromium Authors. All rights reserved. |
3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
5 | 5 |
6 """Unit tests for gcl.py.""" | 6 """Unit tests for gcl.py.""" |
7 | 7 |
8 # Fixes include path. | 8 # Fixes include path. |
9 from super_mox import mox, SuperMoxTestBase | 9 from super_mox import mox, SuperMoxTestBase |
10 | 10 |
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
189 | 189 |
190 def testNew(self): | 190 def testNew(self): |
191 change_info = self.mox.CreateMock(gcl.ChangeInfo) | 191 change_info = self.mox.CreateMock(gcl.ChangeInfo) |
192 change_info.name = 'naame' | 192 change_info.name = 'naame' |
193 change_info.issue = 1 | 193 change_info.issue = 1 |
194 change_info.patchset = 0 | 194 change_info.patchset = 0 |
195 change_info.description = 'deescription', | 195 change_info.description = 'deescription', |
196 change_info.files = [('A', 'aa'), ('M', 'bb')] | 196 change_info.files = [('A', 'aa'), ('M', 'bb')] |
197 change_info.patch = None | 197 change_info.patch = None |
198 files = [item[1] for item in change_info.files] | 198 files = [item[1] for item in change_info.files] |
199 gcl.CheckHomeForFile('.gcl_upload_no_try').AndReturn(None) | |
200 gcl.DoPresubmitChecks(change_info, False, True).AndReturn(True) | 199 gcl.DoPresubmitChecks(change_info, False, True).AndReturn(True) |
201 gcl.GetCodeReviewSetting('CODE_REVIEW_SERVER').AndReturn('my_server') | 200 gcl.GetCodeReviewSetting('CODE_REVIEW_SERVER').AndReturn('my_server') |
202 gcl.os.getcwd().AndReturn('somewhere') | 201 gcl.os.getcwd().AndReturn('somewhere') |
203 change_info.GetFiles().AndReturn(change_info.files) | 202 change_info.GetFiles().AndReturn(change_info.files) |
204 change_info.GetLocalRoot().AndReturn('proout') | 203 change_info.GetLocalRoot().AndReturn('proout') |
205 gcl.os.chdir('proout') | 204 gcl.os.chdir('proout') |
206 change_info.GetFileNames().AndReturn(files) | 205 change_info.GetFileNames().AndReturn(files) |
207 gcl.GenerateDiff(files) | 206 gcl.GenerateDiff(files) |
208 gcl.upload.RealMain(['upload.py', '-y', '--server=my_server', | 207 gcl.upload.RealMain(['upload.py', '-y', '--server=my_server', |
209 '-r', 'georges@example.com', | 208 '-r', 'georges@example.com', |
210 '--message=\'\'', '--issue=1'], | 209 '--message=\'\'', '--issue=1'], |
211 change_info.patch).AndReturn(("1", | 210 change_info.patch).AndReturn(("1", |
212 "2")) | 211 "2")) |
213 gcl.SendToRietveld("/lint/issue%s_%s" % ('1', '2'), timeout=0.5) | 212 gcl.SendToRietveld("/lint/issue%s_%s" % ('1', '2'), timeout=0.5) |
214 gcl.GetCodeReviewSetting('TRY_ON_UPLOAD').AndReturn('True') | |
215 gcl.TryChange(change_info, [], swallow_exception=True) | |
216 gcl.os.chdir('somewhere') | 213 gcl.os.chdir('somewhere') |
217 change_info.Save() | 214 change_info.Save() |
218 gcl.GetRepositoryRoot().AndReturn(self.fake_root_dir) | 215 gcl.GetRepositoryRoot().AndReturn(self.fake_root_dir) |
219 gcl.ChangeInfo.Load('naame', self.fake_root_dir, True, True | 216 gcl.ChangeInfo.Load('naame', self.fake_root_dir, True, True |
220 ).AndReturn(change_info) | 217 ).AndReturn(change_info) |
221 self.mox.ReplayAll() | 218 self.mox.ReplayAll() |
222 | 219 |
223 gcl.CMDupload(['naame', '-r', 'georges@example.com']) | 220 gcl.CMDupload(['naame', '-r', 'georges@example.com']) |
224 | 221 |
225 def testServerOverride(self): | 222 def testServerOverride(self): |
226 change_info = gcl.ChangeInfo('naame', 0, 0, 'deescription', | 223 change_info = gcl.ChangeInfo('naame', 0, 0, 'deescription', |
227 [('A', 'aa'), ('M', 'bb')], | 224 [('A', 'aa'), ('M', 'bb')], |
228 self.fake_root_dir) | 225 self.fake_root_dir) |
229 self.mox.StubOutWithMock(change_info, 'Save') | 226 self.mox.StubOutWithMock(change_info, 'Save') |
230 change_info.Save() | 227 change_info.Save() |
231 gcl.CheckHomeForFile('.gcl_upload_no_try').AndReturn(None) | |
232 gcl.DoPresubmitChecks(change_info, False, True).AndReturn(True) | 228 gcl.DoPresubmitChecks(change_info, False, True).AndReturn(True) |
233 gcl.GetCodeReviewSetting('CODE_REVIEW_SERVER').AndReturn('my_server') | 229 gcl.GetCodeReviewSetting('CODE_REVIEW_SERVER').AndReturn('my_server') |
234 gcl.tempfile.mkstemp(text=True).AndReturn((42, 'descfile')) | 230 gcl.tempfile.mkstemp(text=True).AndReturn((42, 'descfile')) |
235 gcl.os.write(42, change_info.description) | 231 gcl.os.write(42, change_info.description) |
236 gcl.os.close(42) | 232 gcl.os.close(42) |
237 gcl.GetCodeReviewSetting('CC_LIST') | 233 gcl.GetCodeReviewSetting('CC_LIST') |
238 gcl.GetCodeReviewSetting('PRIVATE') | 234 gcl.GetCodeReviewSetting('PRIVATE') |
239 gcl.os.getcwd().AndReturn('somewhere') | 235 gcl.os.getcwd().AndReturn('somewhere') |
240 gcl.os.chdir(change_info.GetLocalRoot()) | 236 gcl.os.chdir(change_info.GetLocalRoot()) |
241 gcl.GenerateDiff(change_info.GetFileNames()) | 237 gcl.GenerateDiff(change_info.GetFileNames()) |
242 gcl.upload.RealMain(['upload.py', '-y', '--server=my_server', '--server=a', | 238 gcl.upload.RealMain(['upload.py', '-y', '--server=my_server', '--server=a', |
243 "--description_file=descfile", | 239 "--description_file=descfile", |
244 "--message=deescription"], change_info.patch).AndReturn(("1", "2")) | 240 "--message=deescription"], change_info.patch).AndReturn(("1", "2")) |
245 gcl.os.remove('descfile') | 241 gcl.os.remove('descfile') |
246 gcl.SendToRietveld("/lint/issue%s_%s" % ('1', '2'), timeout=0.5) | 242 gcl.SendToRietveld("/lint/issue%s_%s" % ('1', '2'), timeout=0.5) |
247 gcl.os.chdir('somewhere') | 243 gcl.os.chdir('somewhere') |
248 gcl.GetRepositoryRoot().AndReturn(self.fake_root_dir) | 244 gcl.GetRepositoryRoot().AndReturn(self.fake_root_dir) |
249 gcl.ChangeInfo.Load('naame', self.fake_root_dir, True, True | 245 gcl.ChangeInfo.Load('naame', self.fake_root_dir, True, True |
250 ).AndReturn(change_info) | 246 ).AndReturn(change_info) |
251 self.mox.ReplayAll() | 247 self.mox.ReplayAll() |
252 | 248 |
253 gcl.CMDupload(['naame', '--server=a', '--no_watchlists']) | 249 gcl.CMDupload(['naame', '--server=a', '--no_watchlists']) |
254 | 250 |
255 def testNoTry(self): | |
256 change_info = gcl.ChangeInfo('naame', 0, 0, 'deescription', | |
257 [('A', 'aa'), ('M', 'bb')], | |
258 self.fake_root_dir) | |
259 change_info.Save = self.mox.CreateMockAnything() | |
260 change_info.Save() | |
261 gcl.DoPresubmitChecks(change_info, False, True).AndReturn(True) | |
262 gcl.GetCodeReviewSetting('CODE_REVIEW_SERVER').AndReturn('my_server') | |
263 gcl.tempfile.mkstemp(text=True).AndReturn((42, 'descfile')) | |
264 gcl.os.write(42, change_info.description) | |
265 gcl.os.close(42) | |
266 gcl.GetCodeReviewSetting('CC_LIST') | |
267 gcl.GetCodeReviewSetting('PRIVATE') | |
268 gcl.os.getcwd().AndReturn('somewhere') | |
269 gcl.os.chdir(change_info.GetLocalRoot()) | |
270 gcl.GenerateDiff(change_info.GetFileNames()) | |
271 gcl.upload.RealMain(['upload.py', '-y', '--server=my_server', | |
272 "--description_file=descfile", | |
273 "--message=deescription"], change_info.patch).AndReturn(("1", "2")) | |
274 gcl.os.remove('descfile') | |
275 gcl.SendToRietveld("/lint/issue%s_%s" % ('1', '2'), timeout=0.5) | |
276 gcl.os.chdir('somewhere') | |
277 gcl.GetRepositoryRoot().AndReturn(self.fake_root_dir) | |
278 gcl.ChangeInfo.Load('naame', self.fake_root_dir, True, True | |
279 ).AndReturn(change_info) | |
280 self.mox.ReplayAll() | |
281 | |
282 gcl.CMDupload(['naame', '--no-try', '--no_watchlists']) | |
283 | |
284 def testNormal(self): | 251 def testNormal(self): |
285 change_info = gcl.ChangeInfo('naame', 0, 0, 'deescription', | 252 change_info = gcl.ChangeInfo('naame', 0, 0, 'deescription', |
286 [('A', 'aa'), ('M', 'bb')], | 253 [('A', 'aa'), ('M', 'bb')], |
287 self.fake_root_dir) | 254 self.fake_root_dir) |
288 self.mox.StubOutWithMock(change_info, 'Save') | 255 self.mox.StubOutWithMock(change_info, 'Save') |
289 change_info.Save() | 256 change_info.Save() |
290 gcl.CheckHomeForFile('.gcl_upload_no_try').AndReturn(None) | |
291 gcl.DoPresubmitChecks(change_info, False, True).AndReturn(True) | 257 gcl.DoPresubmitChecks(change_info, False, True).AndReturn(True) |
292 gcl.GetCodeReviewSetting('CODE_REVIEW_SERVER').AndReturn('my_server') | 258 gcl.GetCodeReviewSetting('CODE_REVIEW_SERVER').AndReturn('my_server') |
293 gcl.tempfile.mkstemp(text=True).AndReturn((42, 'descfile')) | 259 gcl.tempfile.mkstemp(text=True).AndReturn((42, 'descfile')) |
294 gcl.os.write(42, change_info.description) | 260 gcl.os.write(42, change_info.description) |
295 gcl.os.close(42) | 261 gcl.os.close(42) |
296 gcl.GetCodeReviewSetting('CC_LIST') | 262 gcl.GetCodeReviewSetting('CC_LIST') |
297 gcl.GetCodeReviewSetting('PRIVATE') | 263 gcl.GetCodeReviewSetting('PRIVATE') |
298 gcl.os.getcwd().AndReturn('somewhere') | 264 gcl.os.getcwd().AndReturn('somewhere') |
299 gcl.os.chdir(change_info.GetLocalRoot()) | 265 gcl.os.chdir(change_info.GetLocalRoot()) |
300 gcl.GenerateDiff(change_info.GetFileNames()) | 266 gcl.GenerateDiff(change_info.GetFileNames()) |
301 gcl.upload.RealMain(['upload.py', '-y', '--server=my_server', | 267 gcl.upload.RealMain(['upload.py', '-y', '--server=my_server', |
302 "--description_file=descfile", | 268 "--description_file=descfile", |
303 "--message=deescription"], change_info.patch).AndReturn(("1", "2")) | 269 "--message=deescription"], change_info.patch).AndReturn(("1", "2")) |
304 gcl.os.remove('descfile') | 270 gcl.os.remove('descfile') |
305 gcl.SendToRietveld("/lint/issue%s_%s" % ('1', '2'), timeout=0.5) | 271 gcl.SendToRietveld("/lint/issue%s_%s" % ('1', '2'), timeout=0.5) |
306 gcl.GetCodeReviewSetting('TRY_ON_UPLOAD').AndReturn('True') | |
307 gcl.TryChange(change_info, [], swallow_exception=True) | |
308 gcl.os.chdir('somewhere') | 272 gcl.os.chdir('somewhere') |
309 gcl.GetRepositoryRoot().AndReturn(self.fake_root_dir) | 273 gcl.GetRepositoryRoot().AndReturn(self.fake_root_dir) |
310 gcl.ChangeInfo.Load('naame', self.fake_root_dir, True, True | 274 gcl.ChangeInfo.Load('naame', self.fake_root_dir, True, True |
311 ).AndReturn(change_info) | 275 ).AndReturn(change_info) |
312 self.mox.ReplayAll() | 276 self.mox.ReplayAll() |
313 | 277 |
314 gcl.CMDupload(['naame', '--no_watchlists']) | 278 gcl.CMDupload(['naame', '--no_watchlists']) |
315 self.assertEquals(change_info.issue, 1) | 279 self.assertEquals(change_info.issue, 1) |
316 self.assertEquals(change_info.patchset, 2) | 280 self.assertEquals(change_info.patchset, 2) |
317 | 281 |
318 | 282 |
319 if __name__ == '__main__': | 283 if __name__ == '__main__': |
320 import unittest | 284 import unittest |
321 unittest.main() | 285 unittest.main() |
OLD | NEW |