Testfixtures#
Testfixtures is a collection of helpers and mock objects that are useful when writing automated tests in Python.
The areas of testing this package can help with are listed below:
Comparing objects and sequences
Better feedback when the results aren’t as you expected along with support for comparison of objects that don’t normally support comparison and comparison of deeply nested datastructures.
Mocking out objects and methods
Easy to use ways of stubbing out objects, classes or individual methods. Specialised helpers and mock objects are provided, including sub-processes, dates and times.
Testing logging
Helpers for capturing logging and checking what has been logged is what was expected.
Testing stream output
Helpers for capturing stream output, such as that from print function calls or even stuff written directly to file descriptors, and making assertions about it.
Testing with files and directories
Support for creating and checking both files and directories in sandboxes including support for other common path libraries.
Testing exceptions and warnings
Easy to use ways of checking that a certain exception is raised, or a warning is issued, even down the to the parameters provided.
Testing when using django
Helpers for comparing instances of django models.
Testing when using Twisted
Helpers for making assertions about logging when using Twisted.
Testing when using zope.component
An easy to use sterile component registry.
The sections below describe the use of the various tools included:
- Comparing objects and sequences
- Mocking out objects and methods
- Mocking dates and times
- Testing logging
- Testing output to streams
- Testing with files and directories
- Testing exceptions
- Testing warnings
- Testing subprocesses
- Testing with Django
- Testing with Twisted
- Testing with zope.component
- Utilities
If you’re looking for a description of a particular tool, please see the API reference:
For details of how to install the package or get involved in its development, please see the sections below: