diff options
Diffstat (limited to 'third_party/python/mock-1.0.0/mock.egg-info/PKG-INFO')
-rw-r--r-- | third_party/python/mock-1.0.0/mock.egg-info/PKG-INFO | 208 |
1 files changed, 208 insertions, 0 deletions
diff --git a/third_party/python/mock-1.0.0/mock.egg-info/PKG-INFO b/third_party/python/mock-1.0.0/mock.egg-info/PKG-INFO new file mode 100644 index 0000000000..4c7309c713 --- /dev/null +++ b/third_party/python/mock-1.0.0/mock.egg-info/PKG-INFO @@ -0,0 +1,208 @@ +Metadata-Version: 1.0 +Name: mock +Version: 1.0.0 +Summary: A Python Mocking and Patching Library for Testing +Home-page: http://www.voidspace.org.uk/python/mock/ +Author: Michael Foord +Author-email: michael@voidspace.org.uk +License: UNKNOWN +Description: mock is a library for testing in Python. It allows you to replace parts of + your system under test with mock objects and make assertions about how they + have been used. + + mock is now part of the Python standard library, available as `unittest.mock < + http://docs.python.org/py3k/library/unittest.mock.html#module-unittest.mock>`_ + in Python 3.3 onwards. + + mock provides a core `MagicMock` class removing the need to create a host of + stubs throughout your test suite. After performing an action, you can make + assertions about which methods / attributes were used and arguments they were + called with. You can also specify return values and set needed attributes in + the normal way. + + mock is tested on Python versions 2.4-2.7 and Python 3. mock is also tested + with the latest versions of Jython and pypy. + + The mock module also provides utility functions / objects to assist with + testing, particularly monkey patching. + + * `PDF documentation for 1.0 beta 1 + <http://www.voidspace.org.uk/downloads/mock-1.0.0.pdf>`_ + * `mock on google code (repository and issue tracker) + <http://code.google.com/p/mock/>`_ + * `mock documentation + <http://www.voidspace.org.uk/python/mock/>`_ + * `mock on PyPI <http://pypi.python.org/pypi/mock/>`_ + * `Mailing list (testing-in-python@lists.idyll.org) + <http://lists.idyll.org/listinfo/testing-in-python>`_ + + Mock is very easy to use and is designed for use with + `unittest <http://pypi.python.org/pypi/unittest2>`_. Mock is based on + the 'action -> assertion' pattern instead of 'record -> replay' used by many + mocking frameworks. See the `mock documentation`_ for full details. + + Mock objects create all attributes and methods as you access them and store + details of how they have been used. You can configure them, to specify return + values or limit what attributes are available, and then make assertions about + how they have been used:: + + >>> from mock import Mock + >>> real = ProductionClass() + >>> real.method = Mock(return_value=3) + >>> real.method(3, 4, 5, key='value') + 3 + >>> real.method.assert_called_with(3, 4, 5, key='value') + + `side_effect` allows you to perform side effects, return different values or + raise an exception when a mock is called:: + + >>> mock = Mock(side_effect=KeyError('foo')) + >>> mock() + Traceback (most recent call last): + ... + KeyError: 'foo' + >>> values = {'a': 1, 'b': 2, 'c': 3} + >>> def side_effect(arg): + ... return values[arg] + ... + >>> mock.side_effect = side_effect + >>> mock('a'), mock('b'), mock('c') + (3, 2, 1) + >>> mock.side_effect = [5, 4, 3, 2, 1] + >>> mock(), mock(), mock() + (5, 4, 3) + + Mock has many other ways you can configure it and control its behaviour. For + example the `spec` argument configures the mock to take its specification from + another object. Attempting to access attributes or methods on the mock that + don't exist on the spec will fail with an `AttributeError`. + + The `patch` decorator / context manager makes it easy to mock classes or + objects in a module under test. The object you specify will be replaced with a + mock (or other object) during the test and restored when the test ends:: + + >>> from mock import patch + >>> @patch('test_module.ClassName1') + ... @patch('test_module.ClassName2') + ... def test(MockClass2, MockClass1): + ... test_module.ClassName1() + ... test_module.ClassName2() + + ... assert MockClass1.called + ... assert MockClass2.called + ... + >>> test() + + .. note:: + + When you nest patch decorators the mocks are passed in to the decorated + function in the same order they applied (the normal *python* order that + decorators are applied). This means from the bottom up, so in the example + above the mock for `test_module.ClassName2` is passed in first. + + With `patch` it matters that you patch objects in the namespace where they + are looked up. This is normally straightforward, but for a quick guide + read `where to patch + <http://www.voidspace.org.uk/python/mock/patch.html#where-to-patch>`_. + + As well as a decorator `patch` can be used as a context manager in a with + statement:: + + >>> with patch.object(ProductionClass, 'method') as mock_method: + ... mock_method.return_value = None + ... real = ProductionClass() + ... real.method(1, 2, 3) + ... + >>> mock_method.assert_called_once_with(1, 2, 3) + + There is also `patch.dict` for setting values in a dictionary just during the + scope of a test and restoring the dictionary to its original state when the + test ends:: + + >>> foo = {'key': 'value'} + >>> original = foo.copy() + >>> with patch.dict(foo, {'newkey': 'newvalue'}, clear=True): + ... assert foo == {'newkey': 'newvalue'} + ... + >>> assert foo == original + + Mock supports the mocking of Python magic methods. The easiest way of + using magic methods is with the `MagicMock` class. It allows you to do + things like:: + + >>> from mock import MagicMock + >>> mock = MagicMock() + >>> mock.__str__.return_value = 'foobarbaz' + >>> str(mock) + 'foobarbaz' + >>> mock.__str__.assert_called_once_with() + + Mock allows you to assign functions (or other Mock instances) to magic methods + and they will be called appropriately. The MagicMock class is just a Mock + variant that has all of the magic methods pre-created for you (well - all the + useful ones anyway). + + The following is an example of using magic methods with the ordinary Mock + class:: + + >>> from mock import Mock + >>> mock = Mock() + >>> mock.__str__ = Mock(return_value = 'wheeeeee') + >>> str(mock) + 'wheeeeee' + + For ensuring that the mock objects your tests use have the same api as the + objects they are replacing, you can use "auto-speccing". Auto-speccing can + be done through the `autospec` argument to patch, or the `create_autospec` + function. Auto-speccing creates mock objects that have the same attributes + and methods as the objects they are replacing, and any functions and methods + (including constructors) have the same call signature as the real object. + + This ensures that your mocks will fail in the same way as your production + code if they are used incorrectly:: + + >>> from mock import create_autospec + >>> def function(a, b, c): + ... pass + ... + >>> mock_function = create_autospec(function, return_value='fishy') + >>> mock_function(1, 2, 3) + 'fishy' + >>> mock_function.assert_called_once_with(1, 2, 3) + >>> mock_function('wrong arguments') + Traceback (most recent call last): + ... + TypeError: <lambda>() takes exactly 3 arguments (1 given) + + `create_autospec` can also be used on classes, where it copies the signature of + the `__init__` method, and on callable objects where it copies the signature of + the `__call__` method. + + The distribution contains tests and documentation. The tests require + `unittest2 <http://pypi.python.org/pypi/unittest2>`_ to run. + + Docs from the in-development version of `mock` can be found at + `mock.readthedocs.org <http://mock.readthedocs.org>`_. + +Keywords: testing,test,mock,mocking,unittest,patching,stubs,fakes,doubles +Platform: UNKNOWN +Classifier: Development Status :: 5 - Production/Stable +Classifier: Environment :: Console +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: BSD License +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 2 +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 2.4 +Classifier: Programming Language :: Python :: 2.5 +Classifier: Programming Language :: Python :: 2.6 +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3.1 +Classifier: Programming Language :: Python :: 3.2 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: Implementation :: PyPy +Classifier: Programming Language :: Python :: Implementation :: Jython +Classifier: Operating System :: OS Independent +Classifier: Topic :: Software Development :: Libraries +Classifier: Topic :: Software Development :: Libraries :: Python Modules +Classifier: Topic :: Software Development :: Testing |