This release adds an optional ``payload`` argument to :func:`hypothesis.event`, so that you can clearly express the difference between the label and the value of an observation. :ref:`statistics` will still summarize it as a string, but future observability options can preserve the distinction.
6.90.1
-------------------
This patch supports assigning ``settings = settings(...)`` as a class attribute on a subclass of a ``.TestCase`` attribute of a :class:`~hypothesis.stateful.RuleBasedStateMachine`. Previously, this did nothing at all.
.. code-block: python
works as of this release class TestMyStatefulMachine(MyStatefulMachine.TestCase): settings = settings(max_examples=10000)
the old way still works, but it's more verbose. MyStateMachine.TestCase.settings = settings(max_examples=10000) class TestMyStatefulMachine(MyStatefulMachine.TestCase): pass
Thanks to Joey Tran for reporting these settings-related edge cases in stateful testing.
6.90.0
-------------------
This release makes it an error to assign ``settings = settings(...)`` as a class attribute on a :class:`~hypothesis.stateful.RuleBasedStateMachine`. This has never had any effect, and it should be used as a decorator instead:
.. code-block: python
class BadMachine(RuleBasedStateMachine): """This doesn't do anything, and is now an error!""" settings = settings(derandomize=True)
settings(derandomize=True) class GoodMachine(RuleBasedStateMachine): """This is the right way to do it :-)"""
6.89.1
-------------------
This patch refactors some internals. There is no user-visible change, but we hope to improve performance and unlock support for alternative backends such as :pypi:`symbolic execution with crosshair <crosshair-tool>` in future (:issue:`3086`).
Thanks to Liam DeVoe for this fantastic contribution!
6.89.0
-------------------
This release teaches :func:`~hypothesis.strategies.from_type` to handle constraints implied by the :pypi:`annotated-types` package - as used by e.g. :pypi:`pydantic`. This is usually efficient, but falls back to filtering in a few remaining cases.
Thanks to Viicos for :pull:`3780`!
6.88.4
-------------------
This patch adds a warning when :func:`st.composite <hypothesis.strategies.composite>` wraps a function annotated as returning a :class:`~hypothesis.strategies.SearchStrategy`, since this is usually an error (:issue:`3786`). The function should return a value, and the decorator will convert it to a function which returns a strategy.