| Index: tests/super_mox.py
|
| diff --git a/tests/super_mox.py b/tests/super_mox.py
|
| index bdd96a5c55cc967ae911cb872f866c3aed5d0dac..b8047cd26c4524244991ef24f4c5ceab203ce016 100644
|
| --- a/tests/super_mox.py
|
| +++ b/tests/super_mox.py
|
| @@ -28,7 +28,7 @@ class IsOneOf(mox.Comparator):
|
| return '<sequence or map containing \'%s\'>' % str(self._keys)
|
|
|
|
|
| -class SuperMoxBaseTestBase(mox.MoxTestBase):
|
| +class TestCaseUtils(object):
|
| """Base class with some additional functionalities. People will usually want
|
| to use SuperMoxTestBase instead."""
|
| # Backup the separator in case it gets mocked
|
| @@ -56,7 +56,7 @@ class SuperMoxBaseTestBase(mox.MoxTestBase):
|
| return (self._RANDOM_CHOICE((self._OS_SEP, '')) +
|
| self._DirElts(max_elt_count, max_elt_length))
|
|
|
| - def Url(self, max_elt_count=4, max_elt_length=8):
|
| + def SvnUrl(self, max_elt_count=4, max_elt_length=8):
|
| return ('svn://random_host:port/a' +
|
| self._DirElts(max_elt_count, max_elt_length
|
| ).replace(self._OS_SEP, '/'))
|
| @@ -64,11 +64,11 @@ class SuperMoxBaseTestBase(mox.MoxTestBase):
|
| def RootDir(self, max_elt_count=4, max_elt_length=8):
|
| return self._OS_SEP + self._DirElts(max_elt_count, max_elt_length)
|
|
|
| - def compareMembers(self, object, members):
|
| + def compareMembers(self, obj, 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))
|
| + actual_members = [x for x in sorted(dir(obj))
|
| if not x.startswith('_')]
|
| expected_members = sorted(members)
|
| if actual_members != expected_members:
|
| @@ -77,18 +77,20 @@ class SuperMoxBaseTestBase(mox.MoxTestBase):
|
| print>>sys.stderr, diff
|
| self.assertEqual(actual_members, expected_members)
|
|
|
| - def UnMock(self, object, name):
|
| - """Restore an object inside a test."""
|
| - for (parent, old_child, child_name) in self.mox.stubs.cache:
|
| - if parent == object and child_name == name:
|
| - setattr(parent, child_name, old_child)
|
| - break
|
| + def setUp(self):
|
| + self.root_dir = self.Dir()
|
| + self.args = self.Args()
|
| + self.relpath = self.String(200)
|
| +
|
| + def tearDown(self):
|
| + pass
|
|
|
|
|
| -class SuperMoxTestBase(SuperMoxBaseTestBase):
|
| +class SuperMoxTestBase(TestCaseUtils, mox.MoxTestBase):
|
| def setUp(self):
|
| """Patch a few functions with know side-effects."""
|
| - SuperMoxBaseTestBase.setUp(self)
|
| + TestCaseUtils.setUp(self)
|
| + mox.MoxTestBase.setUp(self)
|
| #self.mox.StubOutWithMock(__builtin__, 'open')
|
| os_to_mock = ('chdir', 'chown', 'close', 'closerange', 'dup', 'dup2',
|
| 'fchdir', 'fchmod', 'fchown', 'fdopen', 'getcwd', 'getpid', 'lseek',
|
| @@ -104,6 +106,10 @@ class SuperMoxTestBase(SuperMoxBaseTestBase):
|
| # Don't mock stderr since it confuses unittests.
|
| self.MockList(sys, ('stdin', 'stdout'))
|
|
|
| + def tearDown(self):
|
| + TestCaseUtils.tearDown(self)
|
| + mox.MoxTestBase.tearDown(self)
|
| +
|
| def MockList(self, parent, items_to_mock):
|
| for item in items_to_mock:
|
| # Skip over items not present because of OS-specific implementation,
|
| @@ -113,3 +119,10 @@ class SuperMoxTestBase(SuperMoxBaseTestBase):
|
| self.mox.StubOutWithMock(parent, item)
|
| except TypeError:
|
| raise TypeError('Couldn\'t mock %s in %s' % (item, parent.__name__))
|
| +
|
| + def UnMock(self, object, name):
|
| + """Restore an object inside a test."""
|
| + for (parent, old_child, child_name) in self.mox.stubs.cache:
|
| + if parent == object and child_name == name:
|
| + setattr(parent, child_name, old_child)
|
| + break
|
|
|