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

Side by Side Diff: tests/gclient_scm_test.py

Issue 389020: Split scm-specific functions out of gclient_scm.py to scm.py. (Closed)
Patch Set: 80 cols Created 11 years, 1 month 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
« no previous file with comments | « scm.py ('k') | tests/gclient_test.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/python 1 #!/usr/bin/python
2 # 2 #
3 # Copyright 2008-2009 Google Inc. All Rights Reserved. 3 # Copyright 2008-2009 Google Inc. All Rights Reserved.
4 # 4 #
5 # Licensed under the Apache License, Version 2.0 (the "License"); 5 # Licensed under the Apache License, Version 2.0 (the "License");
6 # you may not use this file except in compliance with the License. 6 # you may not use this file except in compliance with the License.
7 # You may obtain a copy of the License at 7 # You may obtain a copy of the License at
8 # 8 #
9 # http://www.apache.org/licenses/LICENSE-2.0 9 # http://www.apache.org/licenses/LICENSE-2.0
10 # 10 #
(...skipping 249 matching lines...) Expand 10 before | Expand all | Expand 10 after
260 file_path = gclient_scm.os.path.join(self.root_dir, self.relpath, '.git') 260 file_path = gclient_scm.os.path.join(self.root_dir, self.relpath, '.git')
261 gclient_scm.os.path.exists(file_path).AndReturn(True) 261 gclient_scm.os.path.exists(file_path).AndReturn(True)
262 print("________ found .git directory; skipping %s" % self.relpath) 262 print("________ found .git directory; skipping %s" % self.relpath)
263 263
264 self.mox.ReplayAll() 264 self.mox.ReplayAll()
265 scm = self._scm_wrapper(url=self.url, root_dir=self.root_dir, 265 scm = self._scm_wrapper(url=self.url, root_dir=self.root_dir,
266 relpath=self.relpath) 266 relpath=self.relpath)
267 file_list = [] 267 file_list = []
268 scm.update(options, self.args, file_list) 268 scm.update(options, self.args, file_list)
269 269
270 def testGetSVNFileInfo(self):
271 xml_text = r"""<?xml version="1.0"?>
272 <info>
273 <entry kind="file" path="%s" revision="14628">
274 <url>http://src.chromium.org/svn/trunk/src/chrome/app/d</url>
275 <repository><root>http://src.chromium.org/svn</root></repository>
276 <wc-info>
277 <schedule>add</schedule>
278 <depth>infinity</depth>
279 <copy-from-url>http://src.chromium.org/svn/trunk/src/chrome/app/DEPS</copy-from- url>
280 <copy-from-rev>14628</copy-from-rev>
281 <checksum>369f59057ba0e6d9017e28f8bdfb1f43</checksum>
282 </wc-info>
283 </entry>
284 </info>
285 """ % self.url
286 gclient_scm.CaptureSVN(['info', '--xml', self.url],
287 '.', True).AndReturn(xml_text)
288 expected = {
289 'URL': 'http://src.chromium.org/svn/trunk/src/chrome/app/d',
290 'UUID': None,
291 'Repository Root': 'http://src.chromium.org/svn',
292 'Schedule': 'add',
293 'Copied From URL':
294 'http://src.chromium.org/svn/trunk/src/chrome/app/DEPS',
295 'Copied From Rev': '14628',
296 'Path': self.url,
297 'Revision': 14628,
298 'Node Kind': 'file',
299 }
300 self.mox.ReplayAll()
301 file_info = self._CaptureSVNInfo(self.url, '.', True)
302 self.assertEquals(sorted(file_info.items()), sorted(expected.items()))
303
304 def testCaptureSvnInfo(self):
305 xml_text = """<?xml version="1.0"?>
306 <info>
307 <entry
308 kind="dir"
309 path="."
310 revision="35">
311 <url>%s</url>
312 <repository>
313 <root>%s</root>
314 <uuid>7b9385f5-0452-0410-af26-ad4892b7a1fb</uuid>
315 </repository>
316 <wc-info>
317 <schedule>normal</schedule>
318 <depth>infinity</depth>
319 </wc-info>
320 <commit
321 revision="35">
322 <author>maruel</author>
323 <date>2008-12-04T20:12:19.685120Z</date>
324 </commit>
325 </entry>
326 </info>
327 """ % (self.url, self.root_dir)
328 gclient_scm.CaptureSVN(['info', '--xml',
329 self.url], '.', True).AndReturn(xml_text)
330 self.mox.ReplayAll()
331 file_info = self._CaptureSVNInfo(self.url, '.', True)
332 expected = {
333 'URL': self.url,
334 'UUID': '7b9385f5-0452-0410-af26-ad4892b7a1fb',
335 'Revision': 35,
336 'Repository Root': self.root_dir,
337 'Schedule': 'normal',
338 'Copied From URL': None,
339 'Copied From Rev': None,
340 'Path': '.',
341 'Node Kind': 'dir',
342 }
343 self.assertEqual(file_info, expected)
344
345 def testRevinfo(self):
346 options = self.Options(verbose=False)
347 xml_text = """<?xml version="1.0"?>
348 <info>
349 <entry
350 kind="dir"
351 path="."
352 revision="35">
353 <url>%s</url>
354 <repository>
355 <root>%s</root>
356 <uuid>7b9385f5-0452-0410-af26-ad4892b7a1fb</uuid>
357 </repository>
358 <wc-info>
359 <schedule>normal</schedule>
360 <depth>infinity</depth>
361 </wc-info>
362 <commit
363 revision="35">
364 <author>maruel</author>
365 <date>2008-12-04T20:12:19.685120Z</date>
366 </commit>
367 </entry>
368 </info>
369 """ % (self.url, self.root_dir)
370 gclient_scm.os.getcwd().AndReturn('bleh')
371 gclient_scm.CaptureSVN(['info', '--xml', self.url], 'bleh'
372 ).AndReturn(xml_text)
373 self.mox.ReplayAll()
374 scm = self._scm_wrapper(url=self.url, root_dir=self.root_dir,
375 relpath=self.relpath)
376 rev_info = scm.revinfo(options, self.args, None)
377 self.assertEqual(rev_info, '35')
378
379 270
380 class GitWrapperTestCase(SuperMoxBaseTestBase): 271 class GitWrapperTestCase(SuperMoxBaseTestBase):
381 """This class doesn't use pymox.""" 272 """This class doesn't use pymox."""
382 class OptionsObject(object): 273 class OptionsObject(object):
383 def __init__(self, test_case, verbose=False, revision=None): 274 def __init__(self, test_case, verbose=False, revision=None):
384 self.verbose = verbose 275 self.verbose = verbose
385 self.revision = revision 276 self.revision = revision
386 self.manually_grab_svn_rev = True 277 self.manually_grab_svn_rev = True
387 self.deps_os = None 278 self.deps_os = None
388 self.force = False 279 self.force = False
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
430 M 100644 :4 a 321 M 100644 :4 a
431 M 100644 :5 b 322 M 100644 :5 b
432 323
433 reset refs/heads/master 324 reset refs/heads/master
434 from :3 325 from :3
435 """ 326 """
436 def Options(self, *args, **kwargs): 327 def Options(self, *args, **kwargs):
437 return self.OptionsObject(self, *args, **kwargs) 328 return self.OptionsObject(self, *args, **kwargs)
438 329
439 def CreateGitRepo(self, git_import, path): 330 def CreateGitRepo(self, git_import, path):
331 """Do it for real."""
440 try: 332 try:
441 Popen(['git', 'init'], stdout=PIPE, stderr=STDOUT, 333 Popen(['git', 'init'], stdout=PIPE, stderr=STDOUT,
442 cwd=path).communicate() 334 cwd=path).communicate()
443 except OSError: 335 except OSError:
444 # git is not available, skip this test. 336 # git is not available, skip this test.
445 return False 337 return False
446 Popen(['git', 'fast-import'], stdin=PIPE, stdout=PIPE, stderr=STDOUT, 338 Popen(['git', 'fast-import'], stdin=PIPE, stdout=PIPE, stderr=STDOUT,
447 cwd=path).communicate(input=git_import) 339 cwd=path).communicate(input=git_import)
448 Popen(['git', 'checkout'], stdout=PIPE, stderr=STDOUT, 340 Popen(['git', 'checkout'], stdout=PIPE, stderr=STDOUT,
449 cwd=path).communicate() 341 cwd=path).communicate()
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
605 def testRevinfo(self): 497 def testRevinfo(self):
606 if not self.enabled: 498 if not self.enabled:
607 return 499 return
608 options = self.Options() 500 options = self.Options()
609 scm = gclient_scm.CreateSCM(url=self.url, root_dir=self.root_dir, 501 scm = gclient_scm.CreateSCM(url=self.url, root_dir=self.root_dir,
610 relpath=self.relpath) 502 relpath=self.relpath)
611 rev_info = scm.revinfo(options, (), None) 503 rev_info = scm.revinfo(options, (), None)
612 self.assertEquals(rev_info, '069c602044c5388d2d15c3f875b057c852003458') 504 self.assertEquals(rev_info, '069c602044c5388d2d15c3f875b057c852003458')
613 505
614 506
615 class RunSVNTestCase(BaseTestCase):
616 def testRunSVN(self):
617 self.UnMock(gclient_scm, 'RunSVN')
618 param2 = 'bleh'
619 gclient_scm.gclient_utils.SubprocessCall(['svn', 'foo', 'bar'],
620 param2).AndReturn(None)
621 self.mox.ReplayAll()
622 gclient_scm.RunSVN(['foo', 'bar'], param2)
623
624
625 if __name__ == '__main__': 507 if __name__ == '__main__':
626 import unittest 508 import unittest
627 unittest.main() 509 unittest.main()
628 510
629 # vim: ts=2:sw=2:tw=80:et: 511 # vim: ts=2:sw=2:tw=80:et:
OLDNEW
« no previous file with comments | « scm.py ('k') | tests/gclient_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698