diff options
Diffstat (limited to 'catapult/telemetry/third_party/mox3/mox3/tests/mox_helper.py')
-rw-r--r-- | catapult/telemetry/third_party/mox3/mox3/tests/mox_helper.py | 145 |
1 files changed, 145 insertions, 0 deletions
diff --git a/catapult/telemetry/third_party/mox3/mox3/tests/mox_helper.py b/catapult/telemetry/third_party/mox3/mox3/tests/mox_helper.py new file mode 100644 index 00000000..67843a92 --- /dev/null +++ b/catapult/telemetry/third_party/mox3/mox3/tests/mox_helper.py @@ -0,0 +1,145 @@ +# 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. +# +# +# This is a fork of the pymox library intended to work with Python 3. +# The file was modified by quermit@gmail.com and dawid.fatyga@gmail.com + +"""A very basic test class derived from mox.MoxTestBase, used by test_mox.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 +test_mox.py test suite. + +See test_mox.MoxTestBaseTest for how this class is actually used. +""" + +import os + +from mox3 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) + + def testHasStubs(self): + listdir_list = [] + + def MockListdir(directory): + listdir_list.append(directory) + + self.stubs.Set(os, 'listdir', MockListdir) + os.listdir(self.DIR_PATH) + self.assertEqual([self.DIR_PATH], listdir_list) + + +class TestClassFromAnotherModule(object): + + def __init__(self): + return None + + def Value(self): + return 'Not mock' + + +class ChildClassFromAnotherModule(TestClassFromAnotherModule): + """A child class of TestClassFromAnotherModule. + + Used to test stubbing out unbound methods, where child classes + are eventually bound. + """ + + def __init__(self): + TestClassFromAnotherModule.__init__(self) + + +class CallableClass(object): + + def __init__(self, one, two, nine=None): + pass + + def __call__(self, one): + return 'Not mock' + + def Value(self): + return 'Not mock' + + +def MyTestFunction(one, two, nine=None): + pass + + +class ExampleClass(object): + def __init__(self, foo='bar'): + pass + + def TestMethod(self, one, two, nine=None): + pass + + def NamedParams(self, ignore, foo='bar', baz='qux'): + pass + + def SpecialArgs(self, *args, **kwargs): + pass + + +# This class is used to test stubbing out __init__ of a parent class. +class ChildExampleClass(ExampleClass): + def __init__(self): + ExampleClass.__init__(self) |