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

Unified Diff: tests/gclient_test.py

Issue 122040: Refactor the unit tests. (Closed)
Patch Set: even more cleanup Created 11 years, 6 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tests/gcl_unittest.py ('k') | tests/presubmit_unittest.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 = []
« no previous file with comments | « tests/gcl_unittest.py ('k') | tests/presubmit_unittest.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698