A library for property based testing
Project description
Hypothesis is a library for testing your Python code against a much larger range of examples than you would ever want to write by hand. It’s based on the Haskell library, Quickcheck, and is designed to integrate seamlessly into your existing Python unit testing work flow.
Hypothesis is both extremely practical and also advances the state of the art of unit testing by some way. It’s easy to use, stable, and extremely powerful. If you’re not using Hypothesis to test your project then you’re missing out.
Hypothesis works with most widely used versions of Python. It supports implementations compatible with 2.6, 2.7 and 3.3+, and is known to work on CPython and PyPy (but not PyPy3 until they support a 3.3 compatible version of the language). It does not currently work on Jython or on Python 3.0 through 3.2.
Links of interest
To learn more about how to use Hypothesis, extensive documentation and examples of usage are available at readthedocs.
If you want to talk to people about using Hypothesis, we have both an IRC channel and a mailing list.
If you want to receive occasional updates about Hypothesis, including useful tips and tricks, there’s a TinyLetter mailing list to sign up for them.
If you want to contribute to Hypothesis, instructions are here.
If you’re looking for inspiration for writing your own QuickCheck clone, here’s a list of ideas you might want to borrow.
If you want to hear from people who are already using Hypothesis, some of them have written about it.
If you want to create a downstream package of Hypothesis, please read these guidelines for packagers
Ongoing Development
Development on Hypothesis is a mix of community provided and sponsored. If you wish to contribute, either financially or through code, you can read more about the process in the documentation.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.