| Index: tests/gclient_test.py
|
| diff --git a/tests/gclient_test.py b/tests/gclient_test.py
|
| index 13ada258ec923d43e1525f0ed54cafeaa79cf8dd..a91429df686e523a03ff47bec3d3449ccd53f11a 100644
|
| --- a/tests/gclient_test.py
|
| +++ b/tests/gclient_test.py
|
| @@ -19,52 +19,28 @@
|
| __author__ = 'stephen5.ng@gmail.com (Stephen Ng)'
|
|
|
| import __builtin__
|
| -import copy
|
| import os
|
| -import random
|
| -import string
|
| import StringIO
|
| -import subprocess
|
| -import sys
|
| import unittest
|
|
|
| -import __init__
|
| import gclient
|
| -mox = __init__.mox
|
| +import super_mox
|
| +from super_mox import mox
|
|
|
|
|
| -## Some utilities for generating arbitrary arguments.
|
| -
|
| -
|
| -def String(max_length):
|
| - return ''.join([random.choice(string.letters)
|
| - for x in xrange(random.randint(1, max_length))])
|
| -
|
| -
|
| -def Strings(max_arg_count, max_arg_length):
|
| - return [String(max_arg_length) for x in xrange(max_arg_count)]
|
| -
|
| -
|
| -def Args(max_arg_count=8, max_arg_length=16):
|
| - return Strings(max_arg_count, random.randint(1, max_arg_length))
|
| -
|
| -
|
| -def _DirElts(max_elt_count=4, max_elt_length=8):
|
| - return os.sep.join(Strings(max_elt_count, max_elt_length))
|
| -
|
| -
|
| -def Dir(max_elt_count=4, max_elt_length=8):
|
| - return random.choice((os.sep, '')) + _DirElts(max_elt_count, max_elt_length)
|
| -
|
| -def Url(max_elt_count=4, max_elt_length=8):
|
| - return ('svn://random_host:port/a' +
|
| - _DirElts(max_elt_count, max_elt_length).replace(os.sep, '/'))
|
| -
|
| -def RootDir(max_elt_count=4, max_elt_length=8):
|
| - return os.sep + _DirElts(max_elt_count, max_elt_length)
|
| -
|
| +class BaseTestCase(super_mox.SuperMoxTestBase):
|
| + def setUp(self):
|
| + super_mox.SuperMoxTestBase.setUp(self)
|
| + self.mox.StubOutWithMock(gclient.os.path, 'exists')
|
| + self.mox.StubOutWithMock(gclient.os.path, 'isdir')
|
| + self.mox.StubOutWithMock(gclient.sys, 'stdout')
|
| + self.mox.StubOutWithMock(gclient, 'subprocess')
|
| + # These are not tested.
|
| + self.mox.StubOutWithMock(gclient, 'FileRead')
|
| + self.mox.StubOutWithMock(gclient, 'FileWrite')
|
| + self.mox.StubOutWithMock(gclient, 'SubprocessCall')
|
| + self.mox.StubOutWithMock(gclient, 'RemoveDirectory')
|
|
|
| -class BaseTestCase(mox.MoxTestBase):
|
| # Like unittest's assertRaises, but checks for Gclient.Error.
|
| def assertRaisesError(self, msg, fn, *args, **kwargs):
|
| try:
|
| @@ -74,19 +50,6 @@ class BaseTestCase(mox.MoxTestBase):
|
| else:
|
| self.fail('%s not raised' % msg)
|
|
|
| - def compareMembers(self, object, members):
|
| - """If you add a member, be sure to add the relevant test!"""
|
| - # Skip over members starting with '_' since they are usually not meant to
|
| - # be for public use.
|
| - actual_members = [x for x in sorted(dir(object))
|
| - if not x.startswith('_')]
|
| - expected_members = sorted(members)
|
| - if actual_members != expected_members:
|
| - diff = ([i for i in actual_members if i not in expected_members] +
|
| - [i for i in expected_members if i not in actual_members])
|
| - print diff
|
| - self.assertEqual(actual_members, expected_members)
|
| -
|
|
|
| class GClientBaseTestCase(BaseTestCase):
|
| def Options(self, *args, **kwargs):
|
| @@ -95,45 +58,18 @@ class GClientBaseTestCase(BaseTestCase):
|
| def setUp(self):
|
| BaseTestCase.setUp(self)
|
| # Mock them to be sure nothing bad happens.
|
| - self._CaptureSVN = gclient.CaptureSVN
|
| - gclient.CaptureSVN = self.mox.CreateMockAnything()
|
| + self.mox.StubOutWithMock(gclient, 'CaptureSVN')
|
| self._CaptureSVNInfo = gclient.CaptureSVNInfo
|
| - gclient.CaptureSVNInfo = self.mox.CreateMockAnything()
|
| - self._CaptureSVNStatus = gclient.CaptureSVNStatus
|
| - gclient.CaptureSVNStatus = self.mox.CreateMockAnything()
|
| - self._FileRead = gclient.FileRead
|
| - gclient.FileRead = self.mox.CreateMockAnything()
|
| - self._FileWrite = gclient.FileWrite
|
| - gclient.FileWrite = self.mox.CreateMockAnything()
|
| - self._RemoveDirectory = gclient.RemoveDirectory
|
| - gclient.RemoveDirectory = self.mox.CreateMockAnything()
|
| - self._RunSVN = gclient.RunSVN
|
| - gclient.RunSVN = self.mox.CreateMockAnything()
|
| - self._RunSVNAndGetFileList = gclient.RunSVNAndGetFileList
|
| - gclient.RunSVNAndGetFileList = self.mox.CreateMockAnything()
|
| - self._sys_stdout = gclient.sys.stdout
|
| - gclient.sys.stdout = self.mox.CreateMock(self._sys_stdout)
|
| - self._subprocess = gclient.subprocess
|
| - gclient.subprocess = self.mox.CreateMock(self._subprocess)
|
| - self._os_path_exists = gclient.os.path.exists
|
| - gclient.os.path.exists = self.mox.CreateMockAnything()
|
| + self.mox.StubOutWithMock(gclient, 'CaptureSVNInfo')
|
| + self.mox.StubOutWithMock(gclient, 'CaptureSVNStatus')
|
| + self.mox.StubOutWithMock(gclient, 'RunSVN')
|
| + self.mox.StubOutWithMock(gclient, 'RunSVNAndGetFileList')
|
| self._gclient_gclient = gclient.GClient
|
| gclient.GClient = self.mox.CreateMockAnything()
|
| self._scm_wrapper = gclient.SCMWrapper
|
| gclient.SCMWrapper = self.mox.CreateMockAnything()
|
|
|
| def tearDown(self):
|
| - gclient.CaptureSVN = self._CaptureSVN
|
| - gclient.CaptureSVNInfo = self._CaptureSVNInfo
|
| - gclient.CaptureSVNStatus = self._CaptureSVNStatus
|
| - gclient.FileRead = self._FileRead
|
| - gclient.FileWrite = self._FileWrite
|
| - gclient.RemoveDirectory = self._RemoveDirectory
|
| - gclient.RunSVN = self._RunSVN
|
| - gclient.RunSVNAndGetFileList = self._RunSVNAndGetFileList
|
| - gclient.sys.stdout = self._sys_stdout
|
| - gclient.subprocess = self._subprocess
|
| - gclient.os.path.exists = self._os_path_exists
|
| gclient.GClient = self._gclient_gclient
|
| gclient.SCMWrapper = self._scm_wrapper
|
| BaseTestCase.tearDown(self)
|
| @@ -163,9 +99,9 @@ class GclientTestCase(GClientBaseTestCase):
|
| GClientBaseTestCase.setUp(self)
|
| self.platform = 'darwin'
|
|
|
| - self.args = Args()
|
| - self.root_dir = Dir()
|
| - self.url = Url()
|
| + self.args = self.Args()
|
| + self.root_dir = self.Dir()
|
| + self.url = self.Url()
|
|
|
|
|
| class GClientCommandsTestCase(GClientBaseTestCase):
|
| @@ -1061,16 +997,10 @@ class SCMWrapperTestCase(GClientBaseTestCase):
|
|
|
| def setUp(self):
|
| GClientBaseTestCase.setUp(self)
|
| - self.root_dir = Dir()
|
| - self.args = Args()
|
| - self.url = Url()
|
| + self.root_dir = self.Dir()
|
| + self.args = self.Args()
|
| + self.url = self.Url()
|
| self.relpath = 'asf'
|
| - self._os_path_isdir = gclient.os.path.isdir
|
| - gclient.os.path.isdir = self.mox.CreateMockAnything()
|
| -
|
| - def tearDown(self):
|
| - gclient.os.path.isdir = self._os_path_isdir
|
| - GClientBaseTestCase.tearDown(self)
|
|
|
| def testDir(self):
|
| members = [
|
| @@ -1307,15 +1237,6 @@ class SCMWrapperTestCase(GClientBaseTestCase):
|
|
|
|
|
| class RunSVNTestCase(BaseTestCase):
|
| - def setUp(self):
|
| - BaseTestCase.setUp(self)
|
| - self._OldSubprocessCall = gclient.SubprocessCall
|
| - gclient.SubprocessCall = self.mox.CreateMockAnything()
|
| -
|
| - def tearDown(self):
|
| - gclient.SubprocessCall = self._OldSubprocessCall
|
| - BaseTestCase.tearDown(self)
|
| -
|
| def testRunSVN(self):
|
| param2 = 'bleh'
|
| gclient.SubprocessCall(['svn', 'foo', 'bar'], param2).AndReturn(None)
|
| @@ -1326,18 +1247,7 @@ class RunSVNTestCase(BaseTestCase):
|
| class SubprocessCallAndCaptureTestCase(BaseTestCase):
|
| def setUp(self):
|
| BaseTestCase.setUp(self)
|
| - self._sys_stdout = gclient.sys.stdout
|
| - gclient.sys.stdout = self.mox.CreateMock(self._sys_stdout)
|
| - self._subprocess_Popen = gclient.subprocess.Popen
|
| - gclient.subprocess.Popen = self.mox.CreateMockAnything()
|
| - self._CaptureSVN = gclient.CaptureSVN
|
| - gclient.CaptureSVN = self.mox.CreateMockAnything()
|
| -
|
| - def tearDown(self):
|
| - gclient.sys.stdout = self._sys_stdout
|
| - gclient.subprocess.Popen = self._subprocess_Popen
|
| - gclient.CaptureSVN = self._CaptureSVN
|
| - BaseTestCase.tearDown(self)
|
| + self.mox.StubOutWithMock(gclient, 'CaptureSVN')
|
|
|
| def testSubprocessCallAndCapture(self):
|
| command = ['boo', 'foo', 'bar']
|
| @@ -1354,7 +1264,7 @@ class SubprocessCallAndCaptureTestCase(BaseTestCase):
|
| for i in test_string:
|
| gclient.sys.stdout.write(i)
|
| gclient.subprocess.Popen(command, bufsize=0, cwd=in_directory,
|
| - shell=(sys.platform == 'win32'),
|
| + shell=(gclient.sys.platform == 'win32'),
|
| stdout=gclient.subprocess.PIPE).AndReturn(kid)
|
| self.mox.ReplayAll()
|
| capture_list = []
|
|
|