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.
6.170.1 - 2026-10-16
This patch makes generating unique collections, such as sets() or lists() with unique=True, considerably more efficient. Hypothesis no longer mutates test cases by copying one element of a unique collection over another element of the same collection, and no longer probes for minimal examples by drawing every element at its simplest value - both of which were certain to be rejected, and could waste several times as many draws from the element strategy as were actually returned.
6.170.0 - 2026-10-15
…
9b1efc6e11
adam
py-hypothesis: updated to 6.168.0
6.168.0 - 2026-09-08
datetimes() now generates “tricky” datetimes more often: values on or near daylight-saving and other utc-offset transitions of the drawn timezone - including imaginary wall times, and ambiguous ones with each value of fold - as well as times adjacent to leap seconds and to well-known datetimes like the millennium and the end of the signed 32-bit Unix epoch.
This release also fixes some rare internal errors, where an error raised partway through updating an internal cache - for example by a deeply recursive strategy raising RecursionError - could leave that cache corrupted.
b0b01d8f84
adam
py-hypothesis: updated to 6.167.1
6.167.1 - 2026-08-30
This patch improves shrinking and generation for collection strategies which reject some drawn elements, such as lists() with unique=True. Rejected elements are now marked as discarded, so the shrinker can delete them wholesale and generation avoids revisiting choices that would be rejected again.
6.167.0 - 2026-08-30
Test case observations from observability now give more detail about why a test case failed or was abandoned. metadata includes a new status_reason_location key: a filename:lineno location for the status_reason, if known - for example the location of a failing assume() call, the .filter() call whose predicate rejected the last drawn value, or the exception for failing tests.
…
03c208ae0c
adam
py-hypothesis: updated to 6.165.2
6.165.2 - 2026-08-05
This release extends a recent shrinking improvement to many more strategies. In unions like wide_strategy | specific_strategy, values produced by the specific branch can now be re-encoded and shrunk as if generated by the wider branch when the strategies involved include sampled_from(), lists(), tuples(), dictionaries() and fixed_dictionaries(), builds() of a dataclass, permutations(), the dates() family of strategies, and filtered, deferred, or recursive combinations of them.
6.165.1 - 2026-08-04
…
163d6ef54b
adam
py-hypothesis: updated to 6.156.6
6.156.6 - 2026-07-10
This patch fixes GitHubArtifactDatabase failing to download artifacts due to a colliding Authorization header.
6.156.5 - 2026-07-10
We now publish abi3 wheels for 32-bit linux and 32-bit windows.
6.156.4 - 2026-07-08
In addition to our version-specific wheels, we now also publish abi3 wheels, built against the 3.10 stable ABI.
6.156.3 - 2026-07-08
Fix not uploading source distributions to PyPI, as of v6.156.0.
6.156.2 - 2026-07-07
This patch fixes a KeyError in GitHubArtifactDatabase when reading an artifact whose zip file contains no explicit directory entries, which is the case for zips produced by actions/upload-artifact.
6.156.1 - 2026-07-03
This patch fixes our build pipeline from v6.156.0, so that wheels are actually published.
6.156.0 - 2026-07-01
…
This site uses Google Analytics cookies to count visits and see which pages are read.
No cookie is set until you accept. What is collected