aboutsummaryrefslogtreecommitdiff
path: root/catapult/telemetry/third_party/mox3/mox3/tests/mox_helper.py
diff options
context:
space:
mode:
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.py145
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)