diff --git a/tests/gclient_test.py b/tests/gclient_test.py old mode 100644 new mode 100755 index 828805ac0..aa4e0e0ea --- a/tests/gclient_test.py +++ b/tests/gclient_test.py @@ -19,16 +19,10 @@ __author__ = 'stephen5.ng@gmail.com (Stephen Ng)' import __builtin__ -import os -import re import StringIO -import unittest import gclient -import gclient_scm -import gclient_utils -import super_mox -from super_mox import mox +from super_mox import mox, SuperMoxTestBase class IsOneOf(mox.Comparator): @@ -42,15 +36,15 @@ class IsOneOf(mox.Comparator): return '' % str(self._keys) -class BaseTestCase(super_mox.SuperMoxTestBase): +class BaseTestCase(SuperMoxTestBase): def setUp(self): - super_mox.SuperMoxTestBase.setUp(self) + SuperMoxTestBase.setUp(self) # Like unittest's assertRaises, but checks for Gclient.Error. def assertRaisesError(self, msg, fn, *args, **kwargs): try: fn(*args, **kwargs) - except gclient_utils.Error, e: + except gclient.gclient_utils.Error, e: self.assertEquals(e.args[0], msg) else: self.fail('%s not raised' % msg) @@ -67,27 +61,27 @@ class GClientBaseTestCase(BaseTestCase): self.mox.StubOutWithMock(gclient.os.path, 'isdir') self.mox.StubOutWithMock(gclient.os, 'remove') self.mox.StubOutWithMock(gclient.sys, 'stdout') - self.mox.StubOutWithMock(gclient_utils, 'subprocess') + self.mox.StubOutWithMock(gclient.gclient_utils, 'subprocess') # These are not tested. - self.mox.StubOutWithMock(gclient_utils, 'FileRead') - self.mox.StubOutWithMock(gclient_utils, 'FileWrite') - self.mox.StubOutWithMock(gclient_utils, 'SubprocessCall') - self.mox.StubOutWithMock(gclient_utils, 'RemoveDirectory') + self.mox.StubOutWithMock(gclient.gclient_utils, 'FileRead') + self.mox.StubOutWithMock(gclient.gclient_utils, 'FileWrite') + self.mox.StubOutWithMock(gclient.gclient_utils, 'SubprocessCall') + self.mox.StubOutWithMock(gclient.gclient_utils, 'RemoveDirectory') # Mock them to be sure nothing bad happens. - self.mox.StubOutWithMock(gclient_scm, 'CaptureSVN') - self._CaptureSVNInfo = gclient_scm.CaptureSVNInfo - self.mox.StubOutWithMock(gclient_scm, 'CaptureSVNInfo') - self.mox.StubOutWithMock(gclient_scm, 'CaptureSVNStatus') - self.mox.StubOutWithMock(gclient_scm, 'RunSVN') - self.mox.StubOutWithMock(gclient_scm, 'RunSVNAndGetFileList') + self.mox.StubOutWithMock(gclient.gclient_scm, 'CaptureSVN') + self._CaptureSVNInfo = gclient.gclient_scm.CaptureSVNInfo + self.mox.StubOutWithMock(gclient.gclient_scm, 'CaptureSVNInfo') + self.mox.StubOutWithMock(gclient.gclient_scm, 'CaptureSVNStatus') + self.mox.StubOutWithMock(gclient.gclient_scm, 'RunSVN') + self.mox.StubOutWithMock(gclient.gclient_scm, 'RunSVNAndGetFileList') self._gclient_gclient = gclient.GClient gclient.GClient = self.mox.CreateMockAnything() - self._scm_wrapper = gclient_scm.CreateSCM - gclient_scm.CreateSCM = self.mox.CreateMockAnything() + self._scm_wrapper = gclient.gclient_scm.CreateSCM + gclient.gclient_scm.CreateSCM = self.mox.CreateMockAnything() def tearDown(self): gclient.GClient = self._gclient_gclient - gclient_scm.CreateSCM = self._scm_wrapper + gclient.gclient_scm.CreateSCM = self._scm_wrapper BaseTestCase.tearDown(self) @@ -353,8 +347,8 @@ class GClientClassTestCase(GclientTestCase): def testSetConfig_ConfigContent_GetVar_SaveConfig_SetDefaultConfig(self): options = self.Options() text = "# Dummy content\nclient = 'my client'" - gclient_utils.FileWrite( - os.path.join(self.root_dir, options.config_filename), + gclient.gclient_utils.FileWrite( + gclient.os.path.join(self.root_dir, options.config_filename), text) self.mox.ReplayAll() @@ -386,8 +380,8 @@ class GClientClassTestCase(GclientTestCase): def testLoadCurrentConfig(self): options = self.Options() - path = os.path.realpath(self.root_dir) - gclient.os.path.exists(os.path.join(path, options.config_filename) + path = gclient.os.path.realpath(self.root_dir) + gclient.os.path.exists(gclient.os.path.join(path, options.config_filename) ).AndReturn(True) gclient.GClient(path, options).AndReturn(gclient.GClient) gclient.GClient._LoadConfig() @@ -417,28 +411,29 @@ class GClientClassTestCase(GclientTestCase): options = self.Options() - checkout_path = os.path.join(self.root_dir, solution_name) - gclient.os.path.exists(os.path.join(checkout_path, '.git')).AndReturn(False) + checkout_path = gclient.os.path.join(self.root_dir, solution_name) + gclient.os.path.exists(gclient.os.path.join(checkout_path, '.git') + ).AndReturn(False) # Expect a check for the entries file and we say there is not one. - gclient.os.path.exists(os.path.join(self.root_dir, options.entries_filename) + gclient.os.path.exists( + gclient.os.path.join(self.root_dir, options.entries_filename) ).AndReturn(False) # An scm will be requested for the solution. scm_wrapper_sol = self.mox.CreateMockAnything() - gclient_scm.CreateSCM(self.url, self.root_dir, solution_name + gclient.gclient_scm.CreateSCM(self.url, self.root_dir, solution_name ).AndReturn(scm_wrapper_sol) # Then an update will be performed. scm_wrapper_sol.RunCommand('update', options, self.args, []) # Then an attempt will be made to read its DEPS file. - gclient_utils.FileRead(os.path.join(self.root_dir, - solution_name, - options.deps_file) - ).AndRaise(IOError(2, 'No DEPS file')) + gclient.gclient_utils.FileRead( + gclient.os.path.join(self.root_dir, solution_name, options.deps_file) + ).AndRaise(IOError(2, 'No DEPS file')) # After everything is done, an attempt is made to write an entries # file. - gclient_utils.FileWrite( - os.path.join(self.root_dir, options.entries_filename), + gclient.gclient_utils.FileWrite( + gclient.os.path.join(self.root_dir, options.entries_filename), IsOneOf((entries_content1, entries_content2))) self.mox.ReplayAll() @@ -461,7 +456,8 @@ class GClientClassTestCase(GclientTestCase): "deps = {\n" " 'src/t': 'svn://scm.t/trunk',\n" "}\n") - entry_path = os.path.join(solution_name, 'src', 't').replace('\\', '\\\\') + entry_path = gclient.os.path.join(solution_name, 'src', 't' + ).replace('\\', '\\\\') entries_content = ( "entries = \\\n" "{ '%s': '%s',\n" @@ -473,38 +469,41 @@ class GClientClassTestCase(GclientTestCase): options = self.Options() - gclient.os.path.exists(os.path.join(self.root_dir, solution_name, 'src', - 't', '.git') + gclient.os.path.exists( + gclient.os.path.join(self.root_dir, solution_name, 'src', 't', '.git') ).AndReturn(False) - gclient.os.path.exists(os.path.join(self.root_dir, solution_name, '.git') + gclient.os.path.exists( + gclient.os.path.join(self.root_dir, solution_name, '.git') ).AndReturn(False) # Expect a check for the entries file and we say there is not one. - gclient.os.path.exists(os.path.join(self.root_dir, options.entries_filename) + gclient.os.path.exists( + gclient.os.path.join(self.root_dir, options.entries_filename) ).AndReturn(False) # An scm will be requested for the solution. - gclient_scm.CreateSCM(self.url, self.root_dir, solution_name + gclient.gclient_scm.CreateSCM(self.url, self.root_dir, solution_name ).AndReturn(scm_wrapper_sol) # Then an update will be performed. scm_wrapper_sol.RunCommand('update', options, self.args, []) # Then an attempt will be made to read its DEPS file. - gclient_utils.FileRead(os.path.join(self.root_dir, - solution_name, - options.deps_file)).AndReturn(deps) + gclient.gclient_utils.FileRead( + gclient.os.path.join(self.root_dir, solution_name, options.deps_file) + ).AndReturn(deps) # Next we expect an scm to be request for dep src/t but it should # use the url specified in deps and the relative path should now # be relative to the DEPS file. - gclient_scm.CreateSCM( + gclient.gclient_scm.CreateSCM( 'svn://scm.t/trunk', self.root_dir, - os.path.join(solution_name, "src", "t")).AndReturn(scm_wrapper_t) + gclient.os.path.join(solution_name, "src", "t") + ).AndReturn(scm_wrapper_t) scm_wrapper_t.RunCommand('update', options, self.args, []) # After everything is done, an attempt is made to write an entries # file. - gclient_utils.FileWrite( - os.path.join(self.root_dir, options.entries_filename), + gclient.gclient_utils.FileWrite( + gclient.os.path.join(self.root_dir, options.entries_filename), entries_content) self.mox.ReplayAll() @@ -545,37 +544,40 @@ class GClientClassTestCase(GclientTestCase): options = self.Options() - checkout_path = os.path.join(self.root_dir, solution_name) - gclient.os.path.exists(os.path.join(checkout_path, '.git')).AndReturn(False) - gclient.os.path.exists(os.path.join(self.root_dir, 'src/n', '.git') + checkout_path = gclient.os.path.join(self.root_dir, solution_name) + gclient.os.path.exists( + gclient.os.path.join(checkout_path, '.git')).AndReturn(False) + gclient.os.path.exists(gclient.os.path.join(self.root_dir, 'src/n', '.git') ).AndReturn(False) - gclient.os.path.exists(os.path.join(self.root_dir, 'src/t', '.git') + gclient.os.path.exists(gclient.os.path.join(self.root_dir, 'src/t', '.git') ).AndReturn(False) # Expect a check for the entries file and we say there is not one. - gclient.os.path.exists(os.path.join(self.root_dir, options.entries_filename) + gclient.os.path.exists( + gclient.os.path.join(self.root_dir, options.entries_filename) ).AndReturn(False) # An scm will be requested for the solution. - gclient_scm.CreateSCM(self.url, self.root_dir, solution_name + gclient.gclient_scm.CreateSCM(self.url, self.root_dir, solution_name ).AndReturn(scm_wrapper_sol) # Then an update will be performed. scm_wrapper_sol.RunCommand('update', options, self.args, []) # Then an attempt will be made to read its DEPS file. - gclient_utils.FileRead(os.path.join(checkout_path, options.deps_file) + gclient.gclient_utils.FileRead( + gclient.os.path.join(checkout_path, options.deps_file) ).AndReturn(deps) # Next we expect an scm to be request for dep src/n even though it does not # exist in the DEPS file. - gclient_scm.CreateSCM('svn://custom.n/trunk', - self.root_dir, - "src/n").AndReturn(scm_wrapper_n) + gclient.gclient_scm.CreateSCM('svn://custom.n/trunk', + self.root_dir, + "src/n").AndReturn(scm_wrapper_n) # Next we expect an scm to be request for dep src/t but it should # use the url specified in custom_deps. - gclient_scm.CreateSCM('svn://custom.t/trunk', - self.root_dir, - "src/t").AndReturn(scm_wrapper_t) + gclient.gclient_scm.CreateSCM('svn://custom.t/trunk', + self.root_dir, + "src/t").AndReturn(scm_wrapper_t) scm_wrapper_n.RunCommand('update', options, self.args, []) scm_wrapper_t.RunCommand('update', options, self.args, []) @@ -584,8 +586,8 @@ class GClientClassTestCase(GclientTestCase): # After everything is done, an attempt is made to write an entries # file. - gclient_utils.FileWrite( - os.path.join(self.root_dir, options.entries_filename), + gclient.gclient_utils.FileWrite( + gclient.os.path.join(self.root_dir, options.entries_filename), entries_content) self.mox.ReplayAll() @@ -633,46 +635,47 @@ class GClientClassTestCase(GclientTestCase): options = self.Options() - gclient.os.path.exists(os.path.join(self.root_dir, name_a, '.git') + gclient.os.path.exists(gclient.os.path.join(self.root_dir, name_a, '.git') ).AndReturn(False) - gclient.os.path.exists(os.path.join(self.root_dir, name_b, '.git') + gclient.os.path.exists(gclient.os.path.join(self.root_dir, name_b, '.git') ).AndReturn(False) - gclient.os.path.exists(os.path.join(self.root_dir, 'src/t', '.git') + gclient.os.path.exists(gclient.os.path.join(self.root_dir, 'src/t', '.git') ).AndReturn(False) # Expect a check for the entries file and we say there is not one. - gclient.os.path.exists(os.path.join(self.root_dir, options.entries_filename) + gclient.os.path.exists( + gclient.os.path.join(self.root_dir, options.entries_filename) ).AndReturn(False) # An scm will be requested for the first solution. - gclient_scm.CreateSCM(url_a, self.root_dir, name_a).AndReturn( + gclient.gclient_scm.CreateSCM(url_a, self.root_dir, name_a).AndReturn( scm_wrapper_a) # Then an attempt will be made to read it's DEPS file. - gclient_utils.FileRead( - os.path.join(self.root_dir, name_a, options.deps_file) + gclient.gclient_utils.FileRead( + gclient.os.path.join(self.root_dir, name_a, options.deps_file) ).AndReturn(deps_a) # Then an update will be performed. scm_wrapper_a.RunCommand('update', options, self.args, []) # An scm will be requested for the second solution. - gclient_scm.CreateSCM(url_b, self.root_dir, name_b).AndReturn( + gclient.gclient_scm.CreateSCM(url_b, self.root_dir, name_b).AndReturn( scm_wrapper_b) # Then an attempt will be made to read its DEPS file. - gclient_utils.FileRead( - os.path.join(self.root_dir, name_b, options.deps_file) + gclient.gclient_utils.FileRead( + gclient.os.path.join(self.root_dir, name_b, options.deps_file) ).AndReturn(deps_b) # Then an update will be performed. scm_wrapper_b.RunCommand('update', options, self.args, []) # Finally, an scm is requested for the shared dep. - gclient_scm.CreateSCM('http://svn.t/trunk', self.root_dir, 'src/t' + gclient.gclient_scm.CreateSCM('http://svn.t/trunk', self.root_dir, 'src/t' ).AndReturn(scm_wrapper_dep) # And an update is run on it. scm_wrapper_dep.RunCommand('update', options, self.args, []) # After everything is done, an attempt is made to write an entries file. - gclient_utils.FileWrite( - os.path.join(self.root_dir, options.entries_filename), + gclient.gclient_utils.FileWrite( + gclient.os.path.join(self.root_dir, options.entries_filename), entries_content) self.mox.ReplayAll() @@ -689,24 +692,32 @@ class GClientClassTestCase(GclientTestCase): 'custom_deps': {}, }, ]""" % (name, self.url) - entries_content = ( + # pprint.pformat() is non-deterministic in this case!! + entries_content1 = ( "entries = \\\n" "{ '%s': '%s'}\n" ) % (name, self.url) + entries_content2 = ( + "entries = \\\n" + "{'%s': '%s'}\n" + ) % (name, self.url) + options = self.Options() - gclient.os.path.exists(os.path.join(self.root_dir, name, '.git') + gclient.os.path.exists(gclient.os.path.join(self.root_dir, name, '.git') ).AndReturn(False) - gclient.os.path.exists(os.path.join(self.root_dir, options.entries_filename) + gclient.os.path.exists( + gclient.os.path.join(self.root_dir, options.entries_filename) ).AndReturn(False) - gclient_scm.CreateSCM(self.url, self.root_dir, name).AndReturn( - gclient_scm.CreateSCM) - gclient_scm.CreateSCM.RunCommand('update', options, self.args, []) - gclient_utils.FileRead(os.path.join(self.root_dir, name, options.deps_file) + gclient.gclient_scm.CreateSCM(self.url, self.root_dir, name).AndReturn( + gclient.gclient_scm.CreateSCM) + gclient.gclient_scm.CreateSCM.RunCommand('update', options, self.args, []) + gclient.gclient_utils.FileRead( + gclient.os.path.join(self.root_dir, name, options.deps_file) ).AndReturn("Boo = 'a'") - gclient_utils.FileWrite( - os.path.join(self.root_dir, options.entries_filename), - entries_content) + gclient.gclient_utils.FileWrite( + gclient.os.path.join(self.root_dir, options.entries_filename), + IsOneOf((entries_content1, entries_content2))) self.mox.ReplayAll() client = self._gclient_gclient(self.root_dir, options) @@ -777,63 +788,67 @@ deps_os = { # Also, pymox doesn't verify the order of function calling w.r.t. different # mock objects. Pretty lame. So reorder as we wish to make it clearer. - gclient_utils.FileRead( - os.path.join(self.root_dir, 'src', options.deps_file) + gclient.gclient_utils.FileRead( + gclient.os.path.join(self.root_dir, 'src', options.deps_file) ).AndReturn(deps_content) - gclient_utils.FileWrite( - os.path.join(self.root_dir, options.entries_filename), + gclient.gclient_utils.FileWrite( + gclient.os.path.join(self.root_dir, options.entries_filename), entries_content) - gclient.os.path.exists(os.path.join(self.root_dir, 'src', '.git') + gclient.os.path.exists(gclient.os.path.join(self.root_dir, 'src', '.git') ).AndReturn(False) - gclient.os.path.exists(os.path.join(self.root_dir, 'foo/third_party/WebKit', - '.git') + gclient.os.path.exists( + gclient.os.path.join(self.root_dir, 'foo/third_party/WebKit', '.git') ).AndReturn(False) - gclient.os.path.exists(os.path.join(self.root_dir, 'src/third_party/cygwin', - '.git') + gclient.os.path.exists( + gclient.os.path.join(self.root_dir, 'src/third_party/cygwin', '.git') ).AndReturn(False) - gclient.os.path.exists(os.path.join(self.root_dir, - 'src/third_party/python_24', '.git') + gclient.os.path.exists( + gclient.os.path.join(self.root_dir, 'src/third_party/python_24', '.git') ).AndReturn(False) - gclient.os.path.exists(os.path.join(self.root_dir, 'src/breakpad/bar', - '.git') + gclient.os.path.exists( + gclient.os.path.join(self.root_dir, 'src/breakpad/bar', '.git') ).AndReturn(False) - gclient.os.path.exists(os.path.join(self.root_dir, options.entries_filename) + gclient.os.path.exists( + gclient.os.path.join(self.root_dir, options.entries_filename) ).AndReturn(False) - gclient_scm.CreateSCM(self.url, self.root_dir, 'src').AndReturn( + gclient.gclient_scm.CreateSCM(self.url, self.root_dir, 'src').AndReturn( scm_wrapper_src) scm_wrapper_src.RunCommand('update', mox.Func(OptIsRev123), self.args, []) - gclient_scm.CreateSCM(self.url, self.root_dir, - None).AndReturn(scm_wrapper_src2) + gclient.gclient_scm.CreateSCM(self.url, self.root_dir, + None).AndReturn(scm_wrapper_src2) scm_wrapper_src2.FullUrlForRelativeUrl('/trunk/deps/third_party/cygwin@3248' ).AndReturn(cygwin_path) - gclient_scm.CreateSCM(self.url, self.root_dir, - None).AndReturn(scm_wrapper_src2) + gclient.gclient_scm.CreateSCM(self.url, self.root_dir, + None).AndReturn(scm_wrapper_src2) scm_wrapper_src2.FullUrlForRelativeUrl('/trunk/deps/third_party/WebKit' ).AndReturn(webkit_path) - gclient_scm.CreateSCM(webkit_path, self.root_dir, - 'foo/third_party/WebKit').AndReturn(scm_wrapper_webkit) + gclient.gclient_scm.CreateSCM( + webkit_path, self.root_dir, 'foo/third_party/WebKit' + ).AndReturn(scm_wrapper_webkit) scm_wrapper_webkit.RunCommand('update', mox.Func(OptIsRev42), self.args, []) - gclient_scm.CreateSCM( + gclient.gclient_scm.CreateSCM( 'http://google-breakpad.googlecode.com/svn/trunk/src@285', self.root_dir, 'src/breakpad/bar').AndReturn(scm_wrapper_breakpad) scm_wrapper_breakpad.RunCommand('update', mox.Func(OptIsRevNone), self.args, []) - gclient_scm.CreateSCM(cygwin_path, self.root_dir, - 'src/third_party/cygwin').AndReturn(scm_wrapper_cygwin) + gclient.gclient_scm.CreateSCM( + cygwin_path, self.root_dir, 'src/third_party/cygwin' + ).AndReturn(scm_wrapper_cygwin) scm_wrapper_cygwin.RunCommand('update', mox.Func(OptIsRev333), self.args, []) - gclient_scm.CreateSCM('svn://random_server:123/trunk/python_24@5580', - self.root_dir, - 'src/third_party/python_24').AndReturn( - scm_wrapper_python) + gclient.gclient_scm.CreateSCM( + 'svn://random_server:123/trunk/python_24@5580', + self.root_dir, + 'src/third_party/python_24' + ).AndReturn(scm_wrapper_python) scm_wrapper_python.RunCommand('update', mox.Func(OptIsRevNone), self.args, []) @@ -864,7 +879,7 @@ deps_os = { exception = "Conflicting revision numbers specified." try: client.RunOnDeps('update', self.args) - except gclient_utils.Error, e: + except gclient.gclient_utils.Error, e: self.assertEquals(e.args[0], exception) else: self.fail('%s not raised' % exception) @@ -898,31 +913,35 @@ deps = { scm_wrapper_src = self.mox.CreateMockAnything() options = self.Options() - gclient_utils.FileRead( - os.path.join(self.root_dir, name, options.deps_file) + gclient.gclient_utils.FileRead( + gclient.os.path.join(self.root_dir, name, options.deps_file) ).AndReturn(deps_content) - gclient_utils.FileWrite( - os.path.join(self.root_dir, options.entries_filename), + gclient.gclient_utils.FileWrite( + gclient.os.path.join(self.root_dir, options.entries_filename), entries_content) - gclient.os.path.exists(os.path.join(self.root_dir, 'foo/third_party/WebKit', - '.git')).AndReturn(False) - gclient.os.path.exists(os.path.join(self.root_dir, name, '.git') + gclient.os.path.exists( + gclient.os.path.join(self.root_dir, 'foo/third_party/WebKit', '.git') ).AndReturn(False) - gclient.os.path.exists(os.path.join(self.root_dir, options.entries_filename) + gclient.os.path.exists( + gclient.os.path.join(self.root_dir, name, '.git') ).AndReturn(False) - gclient_scm.CreateSCM(self.url, self.root_dir, name).AndReturn( - gclient_scm.CreateSCM) - gclient_scm.CreateSCM.RunCommand('update', options, self.args, []) + gclient.os.path.exists( + gclient.os.path.join(self.root_dir, options.entries_filename) + ).AndReturn(False) + gclient.gclient_scm.CreateSCM(self.url, self.root_dir, name).AndReturn( + gclient.gclient_scm.CreateSCM) + gclient.gclient_scm.CreateSCM.RunCommand('update', options, self.args, []) - gclient_scm.CreateSCM(self.url, self.root_dir, - None).AndReturn(scm_wrapper_src) + gclient.gclient_scm.CreateSCM(self.url, self.root_dir, None + ).AndReturn(scm_wrapper_src) scm_wrapper_src.FullUrlForRelativeUrl('/trunk/bar/WebKit' ).AndReturn(webkit_path) - gclient_scm.CreateSCM(webkit_path, self.root_dir, - 'foo/third_party/WebKit').AndReturn(gclient_scm.CreateSCM) - gclient_scm.CreateSCM.RunCommand('update', options, self.args, []) + gclient.gclient_scm.CreateSCM( + webkit_path, self.root_dir, 'foo/third_party/WebKit' + ).AndReturn(gclient.gclient_scm.CreateSCM) + gclient.gclient_scm.CreateSCM.RunCommand('update', options, self.args, []) self.mox.ReplayAll() client = self._gclient_gclient(self.root_dir, options) @@ -958,32 +977,34 @@ deps = { scm_wrapper_src = self.mox.CreateMockAnything() options = self.Options() - gclient_utils.FileRead( - os.path.join(self.root_dir, name, options.deps_file) + gclient.gclient_utils.FileRead( + gclient.os.path.join(self.root_dir, name, options.deps_file) ).AndReturn(deps_content) - gclient_utils.FileWrite( - os.path.join(self.root_dir, options.entries_filename), + gclient.gclient_utils.FileWrite( + gclient.os.path.join(self.root_dir, options.entries_filename), entries_content) - gclient.os.path.exists(os.path.join(self.root_dir, 'foo/third_party/WebKit', - '.git') + gclient.os.path.exists( + gclient.os.path.join(self.root_dir, 'foo/third_party/WebKit', '.git') ).AndReturn(False) - gclient.os.path.exists(os.path.join(self.root_dir, name, '.git') + gclient.os.path.exists( + gclient.os.path.join(self.root_dir, name, '.git') ).AndReturn(False) - gclient.os.path.exists(os.path.join(self.root_dir, options.entries_filename) + gclient.os.path.exists( + gclient.os.path.join(self.root_dir, options.entries_filename) ).AndReturn(False) - gclient_scm.CreateSCM(self.url, self.root_dir, name).AndReturn( - gclient_scm.CreateSCM) - gclient_scm.CreateSCM.RunCommand('update', options, self.args, []) + gclient.gclient_scm.CreateSCM(self.url, self.root_dir, name).AndReturn( + gclient.gclient_scm.CreateSCM) + gclient.gclient_scm.CreateSCM.RunCommand('update', options, self.args, []) - gclient_scm.CreateSCM(self.url, self.root_dir, + gclient.gclient_scm.CreateSCM(self.url, self.root_dir, None).AndReturn(scm_wrapper_src) scm_wrapper_src.FullUrlForRelativeUrl('/trunk/bar_custom/WebKit' ).AndReturn(webkit_path) - gclient_scm.CreateSCM(webkit_path, self.root_dir, - 'foo/third_party/WebKit').AndReturn(gclient_scm.CreateSCM) - gclient_scm.CreateSCM.RunCommand('update', options, self.args, []) + gclient.gclient_scm.CreateSCM(webkit_path, self.root_dir, + 'foo/third_party/WebKit').AndReturn(gclient.gclient_scm.CreateSCM) + gclient.gclient_scm.CreateSCM.RunCommand('update', options, self.args, []) self.mox.ReplayAll() client = self._gclient_gclient(self.root_dir, options) @@ -1005,12 +1026,12 @@ deps = { }""" options = self.Options() - gclient_utils.FileRead( - os.path.join(self.root_dir, name, options.deps_file) + gclient.gclient_utils.FileRead( + gclient.os.path.join(self.root_dir, name, options.deps_file) ).AndReturn(deps_content) - gclient_scm.CreateSCM(self.url, self.root_dir, name).AndReturn( - gclient_scm.CreateSCM) - gclient_scm.CreateSCM.RunCommand('update', options, self.args, []) + gclient.gclient_scm.CreateSCM(self.url, self.root_dir, name).AndReturn( + gclient.gclient_scm.CreateSCM) + gclient.gclient_scm.CreateSCM.RunCommand('update', options, self.args, []) self.mox.ReplayAll() client = self._gclient_gclient(self.root_dir, options) @@ -1018,7 +1039,7 @@ deps = { exception = "Var is not defined: webkit" try: client.RunOnDeps('update', self.args) - except gclient_utils.Error, e: + except gclient.gclient_utils.Error, e: self.assertEquals(e.args[0], exception) else: self.fail('%s not raised' % exception) @@ -1068,8 +1089,8 @@ deps = { class SubprocessCallAndFilterTestCase(BaseTestCase): def setUp(self): BaseTestCase.setUp(self) - self.mox.StubOutWithMock(gclient_utils, 'subprocess') - self.mox.StubOutWithMock(gclient_scm, 'CaptureSVN') + self.mox.StubOutWithMock(gclient.gclient_utils, 'subprocess') + self.mox.StubOutWithMock(gclient.gclient_scm, 'CaptureSVN') def testSubprocessCallAndFilter(self): command = ['boo', 'foo', 'bar'] @@ -1085,12 +1106,13 @@ class SubprocessCallAndFilterTestCase(BaseTestCase): print("\n________ running 'boo foo bar' in 'bleh'") for i in test_string: gclient.sys.stdout.write(i) - gclient_utils.subprocess.Popen(command, bufsize=0, cwd=in_directory, - shell=(gclient.sys.platform == 'win32'), - stdout=gclient_utils.subprocess.PIPE, - stderr=gclient_utils.subprocess.STDOUT).AndReturn(kid) + gclient.gclient_utils.subprocess.Popen( + command, bufsize=0, cwd=in_directory, + shell=(gclient.sys.platform == 'win32'), + stdout=gclient.gclient_utils.subprocess.PIPE, + stderr=gclient.gclient_utils.subprocess.STDOUT).AndReturn(kid) self.mox.ReplayAll() - compiled_pattern = re.compile(pattern) + compiled_pattern = gclient.re.compile(pattern) line_list = [] capture_list = [] def FilterLines(line): @@ -1098,19 +1120,17 @@ class SubprocessCallAndFilterTestCase(BaseTestCase): match = compiled_pattern.search(line) if match: capture_list.append(match.group(1)) - gclient_utils.SubprocessCallAndFilter(command, in_directory, - True, True, - fail_status, FilterLines) + gclient.gclient_utils.SubprocessCallAndFilter( + command, in_directory, + True, True, + fail_status, FilterLines) self.assertEquals(line_list, ['ahah', 'accb', 'allo', 'addb']) self.assertEquals(capture_list, ['cc', 'dd']) def testCaptureSVNStatus(self): - x = self - def CaptureSVNMock(command, in_directory=None, print_error=True): - x.assertEquals(in_directory, None) - x.assertEquals(print_error, True) - x.assertEquals(['status', '--xml', '.'], command) - return r""" + gclient.gclient_scm.CaptureSVN( + ['status', '--xml', '.'] + ).AndReturn(r""" @@ -1146,9 +1166,9 @@ class SubprocessCallAndFilterTestCase(BaseTestCase): -""" - gclient_scm.CaptureSVN = CaptureSVNMock - info = gclient_scm.CaptureSVNStatus('.') +""") + self.mox.ReplayAll() + info = gclient.gclient_scm.CaptureSVNStatus('.') expected = [ ('? ', 'unversionned_file.txt'), ('M ', 'build\\internal\\essential.vsprops'), @@ -1159,23 +1179,22 @@ class SubprocessCallAndFilterTestCase(BaseTestCase): self.assertEquals(sorted(info), sorted(expected)) def testCaptureSVNStatusEmpty(self): - x = self - def CaptureSVNMock(command, in_directory=None, print_error=True): - x.assertEquals(in_directory, None) - x.assertEquals(['status', '--xml'], command) - return r""" + gclient.gclient_scm.CaptureSVN( + ['status', '--xml'] + ).AndReturn(r""" -""" - gclient_scm.CaptureSVN = CaptureSVNMock - info = gclient_scm.CaptureSVNStatus(None) +""") + self.mox.ReplayAll() + info = gclient.gclient_scm.CaptureSVNStatus(None) self.assertEquals(info, []) if __name__ == '__main__': + import unittest unittest.main() # vim: ts=2:sw=2:tw=80:et: