diff options
author | dglasser <dglasser@b1010a0a-674b-0410-b734-77272b80c875> | 2008-06-13 23:00:27 +0000 |
---|---|---|
committer | dglasser <dglasser@b1010a0a-674b-0410-b734-77272b80c875> | 2008-06-13 23:00:27 +0000 |
commit | 64b3b1421e561b9c2fdd7e66f8d853889b109489 (patch) | |
tree | 50d272351c5fcec38d4fda8c3022c3186f27329c /mox_test_helper.py | |
download | pymox-64b3b1421e561b9c2fdd7e66f8d853889b109489.tar.gz |
Initial import of mox (originally an internal Google project).
It's not quite ready for release yet, but it's been appropriately
scrubbed and relicensed.
Diffstat (limited to 'mox_test_helper.py')
-rwxr-xr-x | mox_test_helper.py | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/mox_test_helper.py b/mox_test_helper.py new file mode 100755 index 0000000..164c0ec --- /dev/null +++ b/mox_test_helper.py @@ -0,0 +1,76 @@ +#!/usr/bin/python2.4 +# +# Copyright 2008 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""A very basic test class derived from mox.MoxTestBase, used by mox_test.py. + +The class defined in this module is used to test the features of +MoxTestBase and is not intended to be a standalone test. It needs to +be in a separate module, because otherwise the tests in this class +(which should not all pass) would be executed as part of the +mox_test.py test suite. + +See mox_test.MoxTestBaseTest for how this class is actually used. +""" + +import os + +import mox + +class ExampleMoxTestMixin(object): + """Mix-in class for mox test case class. + + It stubs out the same function as one of the test methods in + the example test case. Both tests must pass as meta class wraps + test methods in all base classes. + """ + + def testStat(self): + self.mox.StubOutWithMock(os, 'stat') + os.stat(self.DIR_PATH) + self.mox.ReplayAll() + os.stat(self.DIR_PATH) + + +class ExampleMoxTest(mox.MoxTestBase, ExampleMoxTestMixin): + + DIR_PATH = '/path/to/some/directory' + + def testSuccess(self): + self.mox.StubOutWithMock(os, 'listdir') + os.listdir(self.DIR_PATH) + self.mox.ReplayAll() + os.listdir(self.DIR_PATH) + + def testExpectedNotCalled(self): + self.mox.StubOutWithMock(os, 'listdir') + os.listdir(self.DIR_PATH) + self.mox.ReplayAll() + + def testUnexpectedCall(self): + self.mox.StubOutWithMock(os, 'listdir') + os.listdir(self.DIR_PATH) + self.mox.ReplayAll() + os.listdir('/path/to/some/other/directory') + os.listdir(self.DIR_PATH) + + def testFailure(self): + self.assertTrue(False) + + def testStatOther(self): + self.mox.StubOutWithMock(os, 'stat') + os.stat(self.DIR_PATH) + self.mox.ReplayAll() + os.stat(self.DIR_PATH) |