Greetings! Mocker 0.9 has just been released. The list of changes is provided below.
Where ----- http://labix.org/mocker About ----- - Graceful platform for test doubles in Python (mocks, stubs, fakes, and dummies). - Inspiration from real needs, and also from pmock, jmock, pymock, easymock, etc. - Expectation of expressions defined by actually using mock objects. - Expressions may be replayed in any order by default, - Trivial specification of ordering between expressions when wanted. - Nice parameter matching for defining expectations on method calls. - Good error messages when expectations are broken. - Mocking of many kinds of expressions (getting/setting/deleting attributes, calling, iteration, containment, etc) - Graceful handling of nested expressions (e.g. "person.details.get_phone().get_prefix()") - Mock "proxies", which allow passing through to the real object on specified expressions (e.g. useful with "os.path.isfile()"). - Mocking via temporary "patching" of existent classes and instances. - Trivial mocking of any external module (e.g. "time.time()") via "proxy replacement". - Mock objects may have method calls checked for conformance with real class/instance to prevent API divergence. - Type simulation for using mocks while still performing certain type-checking operations. - Nice (optional) integration with "unittest.TestCase", including additional assertions (e.g. "assertIs", "assertIn", etc). - More ... Changes in 0.9 -------------- - Added MockerTestCase.makeFile() and .makeDir() helpers. They offer easy creation of temporary files/directories, and ensure that they get removed after each test method runs. - Added MockerTestCase.assertMethodsMatch(). It will verify if all public methods found in the class passed as the first argument are also present in the class passed as the second argument, and that they accept the same arguments. This is useful to verify if a fake or stub class have the same API as the real class being simulated. - Added MockerTestCase.assert[Not]{Starts,Ends}With(). - If the replay() method is called twice, expectations will be fully reset so that several similar tests may be performed in a row by just calling replay() again. - Mocker.on_restore() removed. Restore isn't performed if replay() isn't called, and that may not be obvious, so a hook won't be exposed for now. - When using a non-existent import path for Mocker.proxy(), raise an ImportError on the base module, rather than using the actual string as the object (#162315). -- Gustavo Niemeyer http://niemeyer.net -- http://mail.python.org/mailman/listinfo/python-announce-list Support the Python Software Foundation: http://www.python.org/psf/donations.html
