* Fri Apr 24 2020 Arun Persaud <arun@gmx.de>
- specfile:
* updated Django version number in requirements
- update to version 5.10.4:
* This patch improves the internals of builds() type inference, to
handle recursive forward references in certain dataclasses. This
is useful for e.g. hypothesmith?s forthcoming LibCST mode.
- changes from version 5.10.3:
* This release reverses the order in which some operations are tried
during shrinking. This should generally be a slight performance
improvement, but most tests are unlikely to notice much
difference.
- changes from version 5.10.2:
* This patch fixes issue #2406, where use of pandas.Timestamp
objects as bounds for the datetimes() strategy caused an internal
error. This bug was introduced in version 5.8.1.
- changes from version 5.10.1:
* This release is a small internal refactoring to how shrinking
interacts with targeted property-based testing that should have no
user user visible impact.
- changes from version 5.10.0:
* This release improves our support for datetimes and times around
DST transitions.
* times() and datetimes() are now sometimes generated with fold=1,
indicating that they represent the second occurrence of a given
wall-time when clocks are set backwards. This may be set even when
there is no transition, in which case the fold value should be
ignored.
For consistency, timezones provided by the pytz package can now
generate imaginary times (such as the hour skipped over when
clocks ?spring forward? to daylight saving time, or during some
historical timezone transitions). All other timezones have always
supported generation of imaginary times.
If you prefer the previous behaviour, datetimes() now takes an
argument allow_imaginary which defaults to True but can be set to
False for any timezones strategy.
- changes from version 5.9.1 :
* This patch fixes the rendering of binary() docstring by using the
proper backticks syntax.
- changes from version 5.9.0 :
* Failing tests which use target() now report the highest score
observed for each target alongside the failing example(s), even
without explicitly showing test statistics.
* This improves the debugging workflow for tests of accuracy, which
assert that the total imprecision is within some error budget -
for example, abs(a - b) < 0.5. Previously, shrinking to a minimal
failing example could often make errors seem smaller or more
subtle than they really are (see the threshold problem, and issue
[#2180]).
- changes from version 5.8.6 :
* This patch improves the docstring of binary(), the repr() of
sampled_from() on an enum.Enum subclass, and a warning in our
pytest plugin. There is no change in runtime behaviour.
- changes from version 5.8.5 :
* This release (potentially very significantly) improves the
performance of failing tests in some rare cases, mostly only
relevant when using targeted property-based testing, by stopping
further optimisation of unrelated test cases once a failing
example is found.
- changes from version 5.8.4 :
* This release fixes issue #2395, where under some circumstances
targeted property-based testing could cause Hypothesis to get
caught in an infinite loop.
- changes from version 5.8.3 :
* This patch teaches builds() and from_type() to use the
__signature__ attribute of classes where it has been set,
improving our support for Pydantic models (in pydantic >= 1.5).
- changes from version 5.8.2 :
* This release improves the performance of the part of the core
engine that deliberately generates duplicate values.
- changes from version 5.8.1 :
* This patch improves dates() shrinking, to simplify year, month,
and day like datetimes() rather than minimizing the number of days
since 2000-01-01.
* Thu Apr 09 2020 Marketa Calabkova <mcalabkova@suse.com>
- update to version 5.8.0
* Python2 finally dropped!
* Many code fixups, removals, refactorings and so on.
* No need for python-pytz
* Drop support for Python 3.5
* Just see hypothesis-python/docs/changes.rst
* Fri Dec 13 2019 Arun Persaud <arun@gmx.de>
- update to version 4.53.2:
* This release reorganises a number of the Hypothesis internal
modules into a package structure. If you are only depending on the
public API it should have no effect. If you are depending on the
internal API (which you shouldn?t be, and which we don?t guarantee
compatibility on) you may have to rename some imports.
- changes from version 4.53.1:
* This release changes the size distribution of the number of steps
run in stateful testing: It will now almost always run the maximum
number of steps permitted.
- changes from version 4.53.0:
* Test Statistics now include the best score seen for each label,
which can help avoid the threshold problem when the minimal
example shrinks right down to the threshold of failure (issue
[#2180]).
- changes from version 4.52.0:
* This release changes the stateful_step_count setting to raise an
error if set to 0. This is a backwards compatible change because a
value of 0 would never have worked and attempting to run it would
have resulted in an internal assertion error.
- changes from version 4.51.1:
* This release makes a small internal change to the distribution of
test cases. It is unlikely to have much user visible impact.
- changes from version 4.51.0:
* This release deprecates use of @example, @seed, or
@reproduce_failure without @given.
* Sat Dec 07 2019 Arun Persaud <arun@gmx.de>
- update to version 4.50.8:
* This patch makes certain uses of Bundles more efficient in
stateful testing (issue #2078).
- changes from version 4.50.7:
* This release refactors some of Hypothesis?s internal interfaces
for representing data generation. It should have no user visible
effect.
- changes from version 4.50.6:
* This patch removes some old debugging helpers in our Numpy extra
which have not been needed since issue #1963 and issue #2245.
- changes from version 4.50.5:
* This patch fixes issue #2229, where Numpy arrays of unsized
strings would only ever have strings of size one due to an
interaction between our generation logic and Numpy?s allocation
strategy.
- changes from version 4.50.4:
* This patch fixes a rare internal error in strategies for a list of
unique items sampled from a short non-unique sequence (issue
[#2247]). The bug was discovered via hypothesis-jsonschema.
- changes from version 4.50.3:
* This release improves the error message when @settings tries to
inherit settings from a parent argument that isn?t a settings
instance.
- changes from version 4.50.2:
* This release improves Hypothesis?s ?Falsifying example? output, by
breaking output across multiple lines where necessary, and by
removing irrelevant information from the stateful testing output.
- changes from version 4.50.1:
* This patch adds flake8-comprehensions to our linter suite. There
is no user-visible change - expect perhaps via some strange
microbenchmarks - but certain parts of the code now have a clear
and more consistent style.
- changes from version 4.50.0:
* This release fixes some cases where we might previously have
failed to run the validation logic for some strategies. As a
result tests which would previously have been silently testing
significantly less than they should may now start to raise
InvalidArgument now that these errors are caught.
- changes from version 4.49.0:
* This release significantly improves the data distribution in rule
based stateful testing <stateful_testing>, by using a technique
called Swarm Testing (Groce, Alex, et al. ?Swarm testing.?
Proceedings of the 2012 International Symposium on Software
Testing and Analysis. ACM, 2012.) to select which rules are run in
any given test case. This should allow it to find many issues that
it would previously have missed.
* This change is likely to be especially beneficial for stateful
tests with large numbers of rules.
- changes from version 4.48.1:
* This release adds some heuristics to test case generation that try
to ensure that test cases generated early on will be relatively
small.
* This fixes a bug introduced in Hypothesis 4.42.0 which would cause
occasional too_slow failures on some tests.
- changes from version 4.48.0:
* This release revokes the deprecation of find, as we?ve now rebuilt
it on top of @given, which means it has minimal maintenance burden
and we?re happy to support it.
- changes from version 4.47.5:
* This release rebuilds find() on top of @given in order to have
more code in common. It should have minimal user visible effect.
- changes from version 4.47.4:
* This patch removes an internal compatibility shim that we no
longer need.
- changes from version 4.47.3:
* This patch fixes several typos in our docstrings and comments,
with no change in behaviour. Thanks to Dmitry Dygalo for
identifying and fixing them!
- changes from version 4.47.2:
* This release fixes an internal issue where Hypothesis would
sometimes generate test cases that were above its intended maximum
size. This would only have happened rarely and probably would not
have caused major problems when it did.
* Users of the new targeted property-based testing might see minor
impact (possibly slightly faster tests and slightly worse target
scores), but only in the unlikely event that they were hitting
this problem. Other users should not see any effect at all.
- changes from version 4.47.1:
* This release removes some unused code from the core engine. There
is no user-visible change.
- changes from version 4.47.0:
* This release commonizes some code between running explicit
examples and normal test execution. The main user visible impact
of this is that deadlines are now enforced when running explicit
examples.
* Sat Nov 23 2019 Arun Persaud <arun@gmx.de>
- update to version 4.46.1:
* This patch ensures that a KeyboardInterrupt received during
example generation is not treated as a mystery test failure but
instead propagates to the top level, not recording the interrupted
generation in the conjecture data tree. Thanks to Anne Archibald
for identifying and fixing the problem.
- changes from version 4.46.0:
* This release changes the behaviour of floats() when excluding
signed zeros - floats(max_value=0.0, exclude_max=True) can no
longer generate -0.0 nor the much rarer floats(min_value=-0.0,
exclude_min=True) generate +0.0.
* The correct interaction between signed zeros and exclusive
endpoints was unclear; we now enforce the invariant that floats()
will never generate a value equal to an excluded endpoint (issue
[#2201]).
* If you prefer the old behaviour, you can pass
floats(max_value=-0.0) or floats(min_value=0.0) which is exactly
equivalent and has not changed. If you had two endpoints equal to
zero, we recommend clarifying your tests by using just() or
sampled_from() instead of floats().
- changes from version 4.45.1:
* This patch improves the error message when invalid arguments are
passed to rule() or invariant() (issue #2149).
Thanks to Benjamin Palmer for this bugfix!
- changes from version 4.45.0:
* This release supports typing.Final and typing.TypedDict in
from_type().
- changes from version 4.44.5:
* This patch disables our pytest plugin when running on versions of
pytest before 4.3, the oldest our plugin supports. Note that at
time of writing the Pytest developers only support 4.6 and later!
* Hypothesis tests using @given() work on any test runner, but our
integrations to e.g. avoid example database collisions when
combined with @pytest.mark.parametrize eventually drop support for
obsolete versions.
- changes from version 4.44.4:
* This patch adds some internal comments and clarifications to the
Hypothesis implementation. There is no user-visible change.
- changes from version 4.44.3:
* This patch avoids importing test runners such as :pypi`pytest`,
:pypi`unittest2`, or :pypi`nose` solely to access their special
?skip test? exception types - if the module is not in sys.modules,
the exception can?t be raised anyway.
* This fixes a problem where importing an otherwise unused module
could cause spurious errors due to import-time side effects (and
possibly -Werror).
- changes from version 4.44.2:
* This release fixes @given to only complain about missing
keyword-only arguments if the associated test function is actually
called.
* This matches the behaviour of other InvalidArgument errors
produced by @given.
- changes from version 4.44.1:
* This patch allows Hypothesis to run in environments that do not
specify a __file__, such as a zipapp (issue #2196).
- changes from version 4.44.0:
* This release adds a gufunc argument to
mutually_broadcastable_shapes() (issue #2174), which allows us to
generate shapes which are valid for functions like numpy.matmul
that require shapes which are not simply broadcastable.
* Thanks to everyone who has contributed to this feature over the
last year, and a particular shout-out to Zac Hatfield-Dodds and
Ryan Soklaski for mutually_broadcastable_shapes() and to Ryan
Turner for the downstream hypothesis-gufunc project.
- changes from version 4.43.9:
* This patch fixes issue #2108, where the first test using data() to
draw from characters() or text() would be flaky due to unreliable
test timings.
* Time taken by lazy instantiation of strategies is now counted
towards drawing from the strategy, rather than towards the
deadline for the test function.
- changes from version 4.43.8:
* This release ensures that the strategies passed to @given are
properly validated when applied to a test method inside a test
class.
* This should result in clearer error messages when some of those
strategies are invalid.
- changes from version 4.43.7:
* This release changes how Hypothesis manages its search space in
cases where it generates redundant data. This should cause it to
generate significantly fewer duplicated examples (especially with
short integer ranges), and may cause it to produce more useful
examples in some cases (especially ones where there is a
significant amount of filtering).
- changes from version 4.43.6 :
* This patch refactors width handling in floats(); you may notice
small performance improvements but the main purpose is to enable
work on issue #1704 (improving shrinking of bounded floats).
- changes from version 4.43.5 :
* This patch removes an unused internal flag. There is no
user-visible change.
- changes from version 4.43.4:
* This patch corrects the exception type and error message you get
if you attempt to use data() to draw from something which is not a
strategy. This never worked, but the error is more helpful now.
- changes from version 4.43.3:
* We?ve adopted flake8-bugbear to check for a few more style issues,
and this patch implements the minor internal cleanups it
suggested. There is no user-visible change.
- changes from version 4.43.2:
* This patch fixes the formatting of some documentation, but there
is no change to any executed code.
- changes from version 4.43.1 :
* Python 3.8?s new typing.Literal type - see PEP 586 for details -
is now supported in from_type().
- changes from version 4.43.0:
* This release adds the strategy mutually_broadcastable_shapes(),
which generates multiple array shapes that are mutually
broadcast-compatible with an optional user-specified base-shape.
* This is a generalisation of broadcastable_shapes(). It relies
heavily on non-public internals for performance when generating
and shrinking examples. We intend to support generating shapes
matching a ufunc signature in a future version (issue #2174).
* Thanks to Ryan Soklaski, Zac Hatfield-Dodds, and @rdturnermtl who
contributed to this new feature.
- changes from version 4.42.10:
* This release fixes from_type() when used with bounded or
constrained typing.TypeVar objects (issue #2094).
* Previously, distinct typevars with the same constraints would be
treated as all single typevar, and in cases where a typevar bound
was resolved to a union of subclasses this could result in mixed
types being generated for that typevar.
- changes from version 4.42.9:
* This patch ensures that the default value broadcastable_shapes()
chooses for max_dims is always valid (at most 32), even if you
pass min_dims=32.
- changes from version 4.42.8:
* This patch ensures that we only add profile information to the
pytest header if running either pytest or Hypothesis in verbose
mode, matching the builtin cache plugin (issue #2155).
- changes from version 4.42.7:
* This patch makes stateful step printing expand the result of a
step into multiple variables when you return multiple() (issue
[#2139]). Thanks to Joseph Weston for reporting and fixing this bug!
- changes from version 4.42.6:
* This release fixes a bug (issue #2166) where a Unicode character
info cache file was generated but never used on subsequent test
runs, causing tests to run more slowly than they should have.
* Thanks to Robert Knight for this bugfix!
- changes from version 4.42.5:
* This patch corrects some internal documentation. There is no
user-visible change.
- changes from version 4.42.4:
* This release fixes a bug (issue #2160) where decorators applied
after @settings and before @given were ignored.
* Thanks to Tom Milligan for this bugfix!
- changes from version 4.42.3:
* This release updates Hypothesis?s formatting to the new version of
black, and has absolutely no user visible effect.
- changes from version 4.42.2:
* This release fixes a bug in recursive() which would have meant
that in practice max_leaves was treated as if it was lower than it
actually is - specifically it would be capped at the largest power
of two smaller than it. It is now handled correctly.
- changes from version 4.42.1:
* Python 3.8?s new typing.SupportsIndex type - see PEP 357 for
details - is now supported in from_type().
* Thanks to Grigorios Giannakopoulos for the patch!
- changes from version 4.42.0:
* This release significantly simplifies Hypothesis?s internal logic
for data generation, by removing a number of heuristics of
questionable or unproven value.
* The results of this change will vary significantly from test to
test. Most test suites will see significantly faster data
generation and lower memory usage. The ?quality? of the generated
data may go up or down depending on your particular test suites.
* If you see any significant regressions in Hypothesis?s ability to
find bugs in your code as a result of this release, please file an
issue to let us know.
* Users of the new targeted property-based testing functionality are
reasonably likely to see improvements in data generation, as this
release changes the search algorithm for targeted property based
testing to one that is more likely to be productive than the
existing approach.
- changes from version 4.41.3:
* This patch is to ensure that our internals remain comprehensible
to mypy 0.740 - there is no user-visible change.
- changes from version 4.41.2:
* This patch changes some internal hashes to SHA384, to better
support users subject to FIPS-140. There is no user-visible API
change.
* Thanks to Paul Kehrer for this contribution!
- changes from version 4.41.1:
* This release makes --hypothesis-show-statistics much more useful
for tests using a RuleBasedStateMachine, by simplifying the reprs
so that events are aggregated correctly.
- changes from version 4.41.0:
* This release upgrades the fixed_dictionaries() strategy to support
optional keys (issue #1913).
* Wed Oct 16 2019 Marketa Calabkova <mcalabkova@suse.com>
- update to version 4.40.2
* Type hints improved
* Performance improved
* Array indexing improved
* **experimental** support for targeted property-based testing
* Sun Aug 25 2019 Arun Persaud <arun@gmx.de>
- update to version 4.34.0:
* The from_type() strategy now knows to look up the subclasses of
abstract types, which cannot be instantiated directly. This is
very useful for hypothesmith to support libCST.
- changes from version 4.33.1:
* This patch works around a crash when an incompatible version of
Numpy is installed under PyPy 5.10 (Python 2.7).
- changes from version 4.33.0:
* This release improves the domains() strategy, as well as the
urls() and the emails() strategies which use it. These strategies
now use the full IANA list of Top Level Domains and are correct as
per RFC 1035. Passing tests using these strategies may now
fail.Thanks to TechDragon for this improvement.
- changes from version 4.32.3 :
* This patch tidies up the repr of several settings-related objects,
at runtime and in the documentation, and deprecates the
undocumented edge case that phases=None was treated like
phases=tuple(Phase). It also fixes from_lark() with lark 0.7.2 and later.
* Sun Aug 04 2019 Arun Persaud <arun@gmx.de>
- update to version 4.32.2:
* This patch updates some internal comments for mypy 0.720. There is
no user-visible impact.
- changes from version 4.32.1:
* This release changes how the shrinker represents its progress
internally. For large generated test cases this should result in
significantly less memory usage and possibly faster
shrinking. Small generated test cases may be slightly slower to
shrink but this shouldn?t be very noticeable.
- changes from version 4.32.0:
* This release makes arrays() more pedantic about elements
strategies that cannot be exactly represented as array
elements. In practice, you will see new warnings if you were using
a float16 or float32 dtype without passing floats() the width=16
or width=32 arguments respectively.The previous behaviour could
lead to silent truncation, and thus some elements being equal to
an explicitly excluded bound (issue #1899).
* Sun Jul 28 2019 Arun Persaud <arun@gmx.de>
- update to version 4.31.1:
* This patch changes an internal use of MD5 to SHA hashes, to better
support users subject to FIPS-140. There is no user-visible or API
change.
- changes from version 4.31.0 :
* This release simplifies the logic of the print_blob setting by
removing the option to set it to PrintSettings.INFER. As a result
the print_blob setting now takes a single boolean value, and the
use of PrintSettings is deprecated.
* Mon Jul 22 2019 Tomá? Chvátal <tchvatal@suse.com>
- Update to 4.28.2:
* Various bugfixes and deprecations all around
* Sat Jun 08 2019 Arun Persaud <arun@gmx.de>
- update to version 4.24.3:
* This patch improves the implementation of an internal wrapper on
Python 3.8 beta1 (and will break on the alphas; but they?re not
meant to be stable). On other versions, there is no change at
all. Thanks to Daniel Hahler for the patch, and Victor Stinner for
his work on bpo-37032 that made it possible.
* Thu Jun 06 2019 Ond?ej Súkup <mimi.vx@gmail.com>
- update to 4.24.2
* Deprecation messages for functions in hypothesis.extra.django.models
now explicitly name the deprecated function to make it easier to track down usages.
* a spurious bug raised when a @st.composite function was passed a keyword-only argument.
* deprecates GenericStateMachine, in favor of RuleBasedStateMachine.
* This patch clarifies some error messages when the test function signature
is incompatible with the arguments to @given, especially when the @settings()
decorator is also used
* ixes a minor formatting issue the docstring of from_type()
* Tue May 14 2019 Ond?ej Súkup <mimi.vx@gmail.com>
- update to 4.23.4
* Adds a recipe to the docstring of :func:`~hypothesis.strategies.from_type`
* implements the :func:`~hypothesis.strategies.slices` strategy,
to generate slices of a length-size sequence.
* Tue May 07 2019 Tomá? Chvátal <tchvatal@suse.com>
- Remove pandas dependency to make ring1 more happy
- Update to 4.22.0:
* Various small tweaks only
* Mon May 06 2019 Tomá? Chvátal <tchvatal@suse.com>
- More love for the tests to make sure we execute and run them
+ skip/remove the obvious failures that are irelevant
* Tue Apr 30 2019 Tomá? Chvátal <tchvatal@suse.com>
- Update to 4.18.2:
* This patch makes Hypothesis compatible with the Python 3.8 alpha
* This release adds the functions() strategy
* This release refactors stateful rule selection
* This patch allows Hypothesis to try a few more examples after finding the first bug
* This release adds the strategy broadcastable_shapes()
- Make sure the tests are executed (and fail at the moment, needs
bit more love)
* Sat Apr 13 2019 Arun Persaud <arun@gmx.de>
- update to version 4.16.0:
* This release allows register_type_strategy() to be used with
typing.NewType instances. This may be useful to e.g. provide only
positive integers for from_type(UserId) with a UserId =
NewType('UserId', int) type.
- changes from version 4.15.0:
* This release supports passing a timedelta as the deadline setting,
so you no longer have to remember that the number is in
milliseconds (issue #1900).
- changes from version 4.14.7:
* This patch makes the type annotations on hypothesis.extra.dateutil
compatible with mypy 0.700.
- changes from version 4.14.6:
* This release fixes a bug introduced in Hypothesis 4.14.3 that
would sometimes cause sampled_from(...).filter(...) to encounter
an internal assertion failure when there are three or fewer
elements, and every element is rejected by the filter.
- changes from version 4.14.5:
* This patch takes the previous efficiency improvements to
sampled_from(...).filter(...) strategies that reject most
elements, and generalises them to also apply to
sampled_from(...).filter(...).filter(...) and longer chains of
filters.
- changes from version 4.14.4:
* This release fixes a bug that prevented random_module() from
correctly restoring the previous state of the random module.
The random state was instead being restored to a temporary
deterministic state, which accidentally caused subsequent tests to
see the same random values across multiple test runs.
- changes from version 4.14.3:
* This patch adds an internal special case to make
sampled_from(...).filter(...) much more efficient when the filter
rejects most elements (issue #1885).
- changes from version 4.14.2:
* This patch improves the error message if the function f in
s.flatmap(f) does not return a strategy.
- changes from version 4.14.1:
* This release modifies how Hypothesis selects operations to run
during shrinking, by causing it to deprioritise previously useless
classes of shrink until others have reached a fixed point.
* This avoids certain pathological cases where the shrinker gets
very close to finishing and then takes a very long time to finish
the last small changes because it tries many useless shrinks for
each useful one towards the end. It also should cause a more
modest improvement (probably no more than about 30%) in shrinking
performance for most tests.
- changes from version 4.14.0:
* This release blocks installation of Hypothesis on Python 3.4,
which reached its end of life date on 2019-03-18.
This should not be of interest to anyone but downstream
maintainers - if you are affected, migrate to a secure version of
Python as soon as possible or at least seek commercial support.
* Mon Mar 25 2019 John Vandenberg <jayvdb@gmail.com>
- Add changes.rst to %doc
- Update to v4.13.0
* for changes please see doc/changes.rst or
https://github.com/HypothesisWorks/hypothesis/blob/master/hypothesis-python/docs/changes.rst
* Mon Mar 18 2019 Ond?ej Súkup <mimi.vx@gmail.com>
- update to 4.11.7
* for changes please see doc/changes.rst or
- https://github.com/HypothesisWorks/hypothesis/blob/master/hypothesis-python/docs/changes.rst
* Fri Dec 28 2018 Martin Pluskal <mpluskal@suse.com>
- Move name ahead of version in spec file to resolve build issues
on older distributions