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

Side by Side Diff: tests/gclient_test.py

Issue 1627009: Workaround output variance in pprint.pformat. (Closed)
Patch Set: Created 10 years, 8 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
« no previous file with comments | « gclient.py ('k') | no next file » | 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 # 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 gclient.py.""" 6 """Unit tests for gclient.py."""
7 7
8 # Fixes include path. 8 # Fixes include path.
9 from super_mox import mox, IsOneOf, SuperMoxTestBase 9 from super_mox import mox, SuperMoxTestBase
10 10
11 import gclient 11 import gclient
12 12
13 13
14 class BaseTestCase(SuperMoxTestBase): 14 class BaseTestCase(SuperMoxTestBase):
15 # Like unittest's assertRaises, but checks for Gclient.Error. 15 # Like unittest's assertRaises, but checks for Gclient.Error.
16 def assertRaisesError(self, msg, fn, *args, **kwargs): 16 def assertRaisesError(self, msg, fn, *args, **kwargs):
17 try: 17 try:
18 fn(*args, **kwargs) 18 fn(*args, **kwargs)
19 except gclient.gclient_utils.Error, e: 19 except gclient.gclient_utils.Error, e:
(...skipping 337 matching lines...) Expand 10 before | Expand all | Expand 10 after
357 solution_name = 'testRunOnDepsNoDeps_solution_name' 357 solution_name = 'testRunOnDepsNoDeps_solution_name'
358 gclient_config = ( 358 gclient_config = (
359 "solutions = [ {\n" 359 "solutions = [ {\n"
360 " 'name': '%s',\n" 360 " 'name': '%s',\n"
361 " 'url': '%s',\n" 361 " 'url': '%s',\n"
362 " 'custom_deps': {},\n" 362 " 'custom_deps': {},\n"
363 "} ]\n" 363 "} ]\n"
364 ) % (solution_name, self.url) 364 ) % (solution_name, self.url)
365 365
366 # pprint.pformat() is non-deterministic in this case!! 366 # pprint.pformat() is non-deterministic in this case!!
367 entries_content1 = ( 367 entries_content = (
368 "entries = \\\n" 368 "entries = \\\n"
369 "{ '%s': '%s'}\n" 369 "{ '%s': '%s'}\n"
370 ) % (solution_name, self.url) 370 ) % (solution_name, self.url)
371 entries_content2 = (
372 "entries = \\\n"
373 "{'%s': '%s'}\n"
374 ) % (solution_name, self.url)
375 371
376 options = self.Options() 372 options = self.Options()
377 373
378 checkout_path = gclient.os.path.join(self.root_dir, solution_name) 374 checkout_path = gclient.os.path.join(self.root_dir, solution_name)
379 gclient.os.path.exists(gclient.os.path.join(checkout_path, '.git') 375 gclient.os.path.exists(gclient.os.path.join(checkout_path, '.git')
380 ).AndReturn(False) 376 ).AndReturn(False)
381 # Expect a check for the entries file and we say there is not one. 377 # Expect a check for the entries file and we say there is not one.
382 gclient.os.path.exists( 378 gclient.os.path.exists(
383 gclient.os.path.join(self.root_dir, options.entries_filename) 379 gclient.os.path.join(self.root_dir, options.entries_filename)
384 ).AndReturn(False) 380 ).AndReturn(False)
385 381
386 # An scm will be requested for the solution. 382 # An scm will be requested for the solution.
387 scm_wrapper_sol = self.mox.CreateMockAnything() 383 scm_wrapper_sol = self.mox.CreateMockAnything()
388 gclient.gclient_scm.CreateSCM(self.url, self.root_dir, solution_name 384 gclient.gclient_scm.CreateSCM(self.url, self.root_dir, solution_name
389 ).AndReturn(scm_wrapper_sol) 385 ).AndReturn(scm_wrapper_sol)
390 # Then an update will be performed. 386 # Then an update will be performed.
391 scm_wrapper_sol.RunCommand('update', options, self.args, []) 387 scm_wrapper_sol.RunCommand('update', options, self.args, [])
392 # Then an attempt will be made to read its DEPS file. 388 # Then an attempt will be made to read its DEPS file.
393 gclient.gclient_utils.FileRead( 389 gclient.gclient_utils.FileRead(
394 gclient.os.path.join(self.root_dir, solution_name, options.deps_file) 390 gclient.os.path.join(self.root_dir, solution_name, options.deps_file)
395 ).AndRaise(IOError(2, 'No DEPS file')) 391 ).AndRaise(IOError(2, 'No DEPS file'))
396 392
397 # After everything is done, an attempt is made to write an entries 393 # After everything is done, an attempt is made to write an entries
398 # file. 394 # file.
399 gclient.gclient_utils.FileWrite( 395 gclient.gclient_utils.FileWrite(
400 gclient.os.path.join(self.root_dir, options.entries_filename), 396 gclient.os.path.join(self.root_dir, options.entries_filename),
401 IsOneOf((entries_content1, entries_content2))) 397 entries_content)
402 398
403 self.mox.ReplayAll() 399 self.mox.ReplayAll()
404 client = self._gclient_gclient(self.root_dir, options) 400 client = self._gclient_gclient(self.root_dir, options)
405 client.SetConfig(gclient_config) 401 client.SetConfig(gclient_config)
406 client.RunOnDeps('update', self.args) 402 client.RunOnDeps('update', self.args)
407 403
408 def testRunOnDepsRelativePaths(self): 404 def testRunOnDepsRelativePaths(self):
409 solution_name = 'testRunOnDepsRelativePaths_solution_name' 405 solution_name = 'testRunOnDepsRelativePaths_solution_name'
410 gclient_config = ( 406 gclient_config = (
411 "solutions = [ {\n" 407 "solutions = [ {\n"
(...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after
650 def testRunOnDepsSuccess(self): 646 def testRunOnDepsSuccess(self):
651 # Fake .gclient file. 647 # Fake .gclient file.
652 name = 'testRunOnDepsSuccess_solution_name' 648 name = 'testRunOnDepsSuccess_solution_name'
653 gclient_config = """solutions = [ { 649 gclient_config = """solutions = [ {
654 'name': '%s', 650 'name': '%s',
655 'url': '%s', 651 'url': '%s',
656 'custom_deps': {}, 652 'custom_deps': {},
657 }, ]""" % (name, self.url) 653 }, ]""" % (name, self.url)
658 654
659 # pprint.pformat() is non-deterministic in this case!! 655 # pprint.pformat() is non-deterministic in this case!!
660 entries_content1 = ( 656 entries_content = (
661 "entries = \\\n" 657 "entries = \\\n"
662 "{ '%s': '%s'}\n" 658 "{ '%s': '%s'}\n"
663 ) % (name, self.url) 659 ) % (name, self.url)
664 entries_content2 = (
665 "entries = \\\n"
666 "{'%s': '%s'}\n"
667 ) % (name, self.url)
668
669 660
670 options = self.Options() 661 options = self.Options()
671 gclient.os.path.exists(gclient.os.path.join(self.root_dir, name, '.git') 662 gclient.os.path.exists(gclient.os.path.join(self.root_dir, name, '.git')
672 ).AndReturn(False) 663 ).AndReturn(False)
673 gclient.os.path.exists( 664 gclient.os.path.exists(
674 gclient.os.path.join(self.root_dir, options.entries_filename) 665 gclient.os.path.join(self.root_dir, options.entries_filename)
675 ).AndReturn(False) 666 ).AndReturn(False)
676 gclient.gclient_scm.CreateSCM(self.url, self.root_dir, name).AndReturn( 667 gclient.gclient_scm.CreateSCM(self.url, self.root_dir, name).AndReturn(
677 gclient.gclient_scm.CreateSCM) 668 gclient.gclient_scm.CreateSCM)
678 gclient.gclient_scm.CreateSCM.RunCommand('update', options, self.args, []) 669 gclient.gclient_scm.CreateSCM.RunCommand('update', options, self.args, [])
679 gclient.gclient_utils.FileRead( 670 gclient.gclient_utils.FileRead(
680 gclient.os.path.join(self.root_dir, name, options.deps_file) 671 gclient.os.path.join(self.root_dir, name, options.deps_file)
681 ).AndReturn("Boo = 'a'") 672 ).AndReturn("Boo = 'a'")
682 gclient.gclient_utils.FileWrite( 673 gclient.gclient_utils.FileWrite(
683 gclient.os.path.join(self.root_dir, options.entries_filename), 674 gclient.os.path.join(self.root_dir, options.entries_filename),
684 IsOneOf((entries_content1, entries_content2))) 675 entries_content)
685 676
686 self.mox.ReplayAll() 677 self.mox.ReplayAll()
687 client = self._gclient_gclient(self.root_dir, options) 678 client = self._gclient_gclient(self.root_dir, options)
688 client.SetConfig(gclient_config) 679 client.SetConfig(gclient_config)
689 client.RunOnDeps('update', self.args) 680 client.RunOnDeps('update', self.args)
690 681
691 def testRunOnDepsRevisions(self): 682 def testRunOnDepsRevisions(self):
692 def OptIsRev(options, rev): 683 def OptIsRev(options, rev):
693 if not options.revision == str(rev): 684 if not options.revision == str(rev):
694 print("options.revision = %s" % options.revision) 685 print("options.revision = %s" % options.revision)
(...skipping 363 matching lines...) Expand 10 before | Expand all | Expand 10 after
1058 gclient.os.path.join(self.root_dir, options.entries_filename) 1049 gclient.os.path.join(self.root_dir, options.entries_filename)
1059 ).AndReturn(False) 1050 ).AndReturn(False)
1060 1051
1061 # This is where gclient tries to do the initial checkout. 1052 # This is where gclient tries to do the initial checkout.
1062 gclient.gclient_scm.CreateSCM(self.url, self.root_dir, target).AndReturn( 1053 gclient.gclient_scm.CreateSCM(self.url, self.root_dir, target).AndReturn(
1063 gclient.gclient_scm.CreateSCM) 1054 gclient.gclient_scm.CreateSCM)
1064 gclient.gclient_scm.CreateSCM.RunCommand('updatesingle', options, 1055 gclient.gclient_scm.CreateSCM.RunCommand('updatesingle', options,
1065 self.args + ["DEPS"], []) 1056 self.args + ["DEPS"], [])
1066 gclient.gclient_utils.FileWrite( 1057 gclient.gclient_utils.FileWrite(
1067 gclient.os.path.join(self.root_dir, options.entries_filename), 1058 gclient.os.path.join(self.root_dir, options.entries_filename),
1068 "entries = \\\n{'%s': '%s'}\n" % (name, self.url)) 1059 "entries = \\\n{ '%s': '%s'}\n" % (name, self.url))
1069 1060
1070 self.mox.ReplayAll() 1061 self.mox.ReplayAll()
1071 client = self._gclient_gclient(self.root_dir, options) 1062 client = self._gclient_gclient(self.root_dir, options)
1072 client.SetConfig(gclient_config) 1063 client.SetConfig(gclient_config)
1073 client.RunOnDeps('update', self.args) 1064 client.RunOnDeps('update', self.args)
1074 1065
1075 def test_PrintRevInfo(self): 1066 def test_PrintRevInfo(self):
1076 # TODO(aharper): no test yet for revinfo, lock it down once we've verified 1067 # TODO(aharper): no test yet for revinfo, lock it down once we've verified
1077 # implementation for Pulse plugin 1068 # implementation for Pulse plugin
1078 pass 1069 pass
(...skipping 11 matching lines...) Expand all
1090 pass 1081 pass
1091 def test_VarImpl(self): 1082 def test_VarImpl(self):
1092 pass 1083 pass
1093 1084
1094 1085
1095 if __name__ == '__main__': 1086 if __name__ == '__main__':
1096 import unittest 1087 import unittest
1097 unittest.main() 1088 unittest.main()
1098 1089
1099 # vim: ts=2:sw=2:tw=80:et: 1090 # vim: ts=2:sw=2:tw=80:et:
OLDNEW
« no previous file with comments | « gclient.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698