Commit graph

59 commits

Author SHA1 Message Date
adam
b7918ba517 py-hypothesis: updated to 3.69.3
3.69.3:
This patch handles passing an empty :class:python:enum.Enum to :func:~hypothesis.strategies.from_type returns :func:~hypothesis.strategies.nothing, instead of raising an internal :class:python:AssertionError.

3.69.2:
This patch fixes a small mistake in an internal comment. There is no user-visible change.

3.69.1:
This change fixes a small bug in how the core engine consults its cache of previously-tried inputs. There is unlikely to be any user-visible change.

3.69.0:
This release improves argument validation for stateful testing.

If the target or targets of a :func:~hypothesis.stateful.rule are invalid, we now raise a useful validation error rather than an internal exception.
Passing both the target and targets arguments is deprecated - append the target bundle to the targets tuple of bundles instead.
Passing the name of a Bundle rather than the Bundle itself is also deprecated.
2018-08-27 06:17:33 +00:00
adam
e5143d2a49 py-hypothesis: updated to 3.68.0
3.68.0:
:func:~hypothesis.extra.numpy.arrays now checks that integer and float values drawn from elements and fill strategies can be safely cast to the dtype of the array, and emits a warning otherwise.

Elements in the resulting array could previously violate constraints on the elements strategy due to floating-point overflow or truncation of integers to fit smaller types.

3.67.1:
This release contains a tiny refactoring of the internals. There is no user-visible change.

3.67.0:
This release adds a width argument to :func:~hypothesis.strategies.floats, to generate lower-precision floating point numbers for e.g. Numpy arrays.

The generated examples are always instances of Python's native float type, which is 64bit, but passing width=32 will ensure that all values can be exactly represented as 32bit floats. This can be useful to avoid overflow (to +/- infinity), and for efficiency of generation and shrinking.

Half-precision floats (width=16) are also supported, but require Numpy if you are running Python 3.5 or earlier.
2018-08-17 07:15:22 +00:00
adam
68a2ff5afa py-hypothesis: updated to 3.65.0
3.65.0:
This release deprecates the :obj:~hypothesis.settings.max_shrinks setting in favor of an internal heuristic. If you need to avoid shrinking examples, use the :obj:~hypothesis.settings.phases setting instead. (:issue:1235)

3.64.2:
This release fixes a bug where an internal assertion error could sometimes be triggered while shrinking a failing test.

3.64.1:
This patch fixes type-checking errors in our vendored pretty-printer, which were ignored by our mypy config but visible for anyone else (whoops). Thanks to Pi Delport for reporting :issue:1359 so promptly.

3.64.0:
This release adds :ref:an interface <custom-function-execution> which can be used to insert a wrapper between the original test function and :func:@given <hypothesis.given> (:issue:1257). This will be particularly useful for test runner extensions such as :pypi:pytest-trio, but is not recommended for direct use by other users of Hypothesis.

3.63.0:
This release adds a new mechanism to infer strategies for classes defined using :pypi:attrs, based on the the type, converter, or validator of each attribute. This inference is now built in to :func:~hypothesis.strategies.builds and :func:~hypothesis.strategies.from_type.

On Python 2, :func:~hypothesis.strategies.from_type no longer generates instances of int when passed long, or vice-versa.

3.62.0:
This release adds PEP 484 type hints to Hypothesis on a provisional basis, using the comment-based syntax for Python 2 compatibility. You can :ref:read more about our type hints here <our-type-hints>.

It also adds the py.typed marker specified in PEP 561. After you pip install hypothesis, :pypi:mypy 0.590 or later will therefore type-check your use of our public interface!

3.61.0:
This release deprecates the use of :class:~hypothesis.settings as a context manager, the use of which is somewhat ambiguous.
Users should define settings with global state or with the :func:@settings(...) <hypothesis.settings> decorator.

3.60.1:
Fixed a bug in generating an instance of a Django model from a strategy where the primary key is generated as part of the strategy. See :ref:details here <django-generating-primary-key>.

3.60.0:
This release add initialize decorator for stateful testing (originally discussed in :issue:1216). initialize act as a special rule that is only called once, and all initialize rules are guaranteed to be called before any normal rule is called.
2018-07-03 07:47:45 +00:00
adam
41c5c4abe8 py-hypothesis: updated to 3.59.0
3.59.0:
This release adds the :func:~hypothesis.strategies.emails strategy, which generates unicode strings representing an email address.

3.58.1:
This improves the shrinker. It can now reorder examples: 3 1 2 becomes 1 2 3.

3.58.0:
This adds a new extra :py:func:~hypothesis.extra.dateutil.timezones strategy that generates dateutil timezones.
Depends on :pypi:python-dateutil.
2018-06-16 12:09:13 +00:00
adam
4b5d8633d3 py-hypothesis: updated to 3.57.0
3.57.0:
Using an unordered collection with the :func:~hypothesis.strategies.permutations strategy has been deprecated because the order in which e.g. a set shrinks is arbitrary. This may cause different results between runs.

3.56.10:
This release makes :obj:~hypothesis.settings.define_setting a private method, which has the effect of hiding it from the documentation.

3.56.9:
This is another release with no functionality changes as part of changes to Hypothesis's new release tagging scheme.

3.56.8:
This is a release with no functionality changes that moves Hypothesis over to a new release tagging scheme.

3.56.7:
This release provides a performance improvement for most tests, but in particular users of sampled_from who don't have numpy installed should see a significant performance improvement.

3.56.6:
This patch contains further internal work to support Mypy. There are no user-visible changes... yet.
2018-06-06 19:26:09 +00:00
adam
1a946c864a py-hypothesis: updated to 3.56.5
3.56.5:
This patch contains some internal refactoring to run :pypi:mypy in CI. There are no user-visible changes.

3.56.4:
This release involves some very minor internal clean up and should have no user visible effect at all.

3.56.3:
This release fixes a problem introduced in :ref:3.56.0 <v3.56.0> where setting the hypothesis home directory (through currently undocumented means) would no longer result in the default database location living in the new home directory.

3.56.2:
This release fixes a problem introduced in :ref:3.56.0 <v3.56.0> where setting :obj:~hypothesis.settings.max_examples to 1 would result in tests failing with Unsatisfiable. This problem could also occur in other harder to trigger circumstances (e.g. by setting it to a low value, having a hard to satisfy assumption, and disabling health checks).

3.56.1:
This release fixes a problem that was introduced in :ref:3.56.0 <v3.56.0>: Use of the :envvar:HYPOTHESIS_VERBOSITY_LEVEL environment variable was, rather than deprecated, actually broken due to being read before various setup the deprecation path needed was done. It now works correctly (and emits a deprecation warning).

3.56.0:
This release deprecates several redundant or internally oriented :class:~hypothesis.settings, working towards an orthogonal set of configuration options that are widely useful without requiring any knowledge of our internals
2018-05-06 09:06:42 +00:00
adam
4a43649ea1 py-hypothesis: updated to 3.55.0
3.55.0:
This release includes several improvements to the handling of the :obj:~hypothesis.settings.database setting.

The :obj:~hypothesis.settings.database_file setting was a historical artefact, and you should just use :obj:~hypothesis.settings.database directly.
The :envvar:HYPOTHESIS_DATABASE_FILE environment variable is deprecated, in favor of :meth:~hypothesis.settings.load_profile and the :obj:~hypothesis.settings.database setting.
If you have not configured the example database at all and the default location is not usable (due to e.g. permissions issues), Hypothesis will fall back to an in-memory database. This is not persisted between sessions, but means that the defaults work on read-only filesystems.

3.54.0:
This release improves the :func:~hypotheses.strategies.complex_numbers strategy, which now supports min_magnitude and max_magnitude arguments, along with allow_nan and allow_infinity like for :func:~hypotheses.strategies.floats.

3.53.0:
This release removes support for Django 1.8, which reached end of life on 2018-04-01.
2018-04-05 12:43:27 +00:00
adam
6e48f08f18 py-hypothesis: updated to 3.50.2
3.50.2:
This has no user-visible changes except one slight formatting change to one docstring, to avoid a deprecation warning.

3.50.1:
This patch fixes an internal error introduced in 3.48.0, where a check for the Django test runner would expose import-time errors in Django configuration.

3.50.0:
This release improves validation of numeric bounds for some strategies.
2018-03-23 07:51:09 +00:00
adam
be1371c6df py-hypothesis: updated to 3.49.1
3.49.1:
This patch fixes our tests for Numpy dtype strategies on big-endian platforms, where the strategy behaved correctly but the test assumed that the native byte order was little-endian.

There is no user impact unless you are running our test suite on big-endian platforms. Thanks to Graham Inggs for reporting :issue:1164.

3.49.0:
This release deprecates passing elements=None to collection strategies, such as :func:~hypothesis.strategies.lists.

Requiring lists(nothing()) or builds(list) instead of lists() means slightly more typing, but also improves the consistency and discoverability of our API - as well as showing how to compose or construct strategies in ways that still work in more complex situations.

Passing a nonzero max_size to a collection strategy where the elements strategy contains no values is now deprecated, and will be an error in a future version. The equivalent with elements=None is already an error.
2018-03-15 09:08:36 +00:00
adam
1a477c8b48 py-hypothesis: updated to 3.48.1
3.48.1:
This patch will minimize examples that would come out non-minimal in previous versions.
2018-03-06 08:06:37 +00:00
adam
7c9324075a py-hypothesis: updated 3.48.0
3.48.0:
This release improves some "unhappy paths" when using Hypothesis with the standard library :mod:python:unittest module:

* Applying :func:@given <hypothesis.given> to a non-test method which is overridden from :class:python:unittest.TestCase, such as setUp, raises :attr:a new health check <hypothesis.settings.not_a_test_method>. (:issue:991)
* Using :meth:~python:unittest.TestCase.subTest within a test decorated with :func:@given <hypothesis.given> would leak intermediate results when tests were run under the :mod:python:unittest test runner. Individual reporting of failing subtests is now disabled during a test using :func:@given <hypothesis.given>. (:issue:1071)
* :func:@given <hypothesis.given> is still not a class decorator, but the error message if you try using it on a class has been improved.

As a related improvement, using :class:django:django.test.TestCase with :func:@given <hypothesis.given> instead of :class:hypothesis.extra.django.TestCase raises an explicit error instead of running all examples in a single database transaction.
2018-03-05 13:52:38 +00:00
adam
23eeaa7ed9 py-hypothesis: updated to 3.47.0
3.47.0:
:obj:~hypothesis.settings.register_profile now accepts keyword arguments for specific settings, and the parent settings object is now optional. Using a name for a registered profile which is not a string was never suggested, but it is now also deprecated and will eventually be an error.
2018-03-02 14:49:36 +00:00
adam
c92a99194c py-hypothesis: updated to 3.46.0
3.46.0:
:func:~hypothesis.strategies.characters has improved docs about what arguments are valid, and additional validation logic to raise a clear error early (instead of e.g. silently ignoring a bad argument). Categories may be specified as the Unicode 'general category' (eg u'Nd'), or as the 'major category' (eg [u'N', u'Lu'] is equivalent to [u'Nd', u'Nl', u'No', u'Lu'].

In previous versions, general categories were supported and all other input was silently ignored. Now, major categories are supported in addition to general categories (which may change the behaviour of some existing code), and all other input is deprecated.
2018-02-26 08:40:42 +00:00
adam
f43c12b4a6 py-hypothesis: updated to 3.44.26
3.44.26:
This release fixes some formatting issues in the Hypothesis source code. It should have no externally visible effects.

3.44.25:
This release changes the way in which Hypothesis tries to shrink the size of examples. It probably won't have much impact, but might make shrinking faster in some cases. It is unlikely but not impossible that it will change the resulting examples.
2018-02-06 08:03:22 +00:00
adam
98f846acd0 py-hypothesis: updated to 3.44.24
3.44.24:
This release fixes dependency information when installing Hypothesis from a binary "wheel" distribution.
The install_requires for enum34 is resolved at install time, rather than at build time (with potentially different results).
Django has fixed their python_requires for versions 2.0.0 onward, simplifying Python2-compatible constraints for downstream projects.
2018-02-02 08:18:30 +00:00
adam
228d369718 py-hypothesis: updated to 3.44.16
3.44.16:
This release improves test case reduction for recursive data structures. Hypothesis now guarantees that whenever a strategy calls itself recursively (usually this will happen because you are using ~hypothesis.strategies.deferred), any recursive call may replace the top level value. e.g. given a tree structure, Hypothesis will always try replacing it with a subtree.

Additionally this introduces a new heuristic that may in some circumstances significantly speed up test case reduction - Hypothesis should be better at immediately replacing elements drawn inside another strategy with their minimal possible value.

3.44.15:
~hypothesis.strategies.from_type can now resolve recursive types such as binary trees. Detection of non-type arguments has also improved, leading to better error messages in many cases involving

3.44.14:
This release fixes a bug in the shrinker that prevented the optimisations in 3.44.6 from working in some cases. It would not have worked correctly when filtered examples were nested (e.g. with a set of integers in some range).

This would not have resulted in any correctness problems, but shrinking may have been slower than it otherwise could be.

3.44.13:
This release changes the average bit length of values drawn from ~hypothesis.strategies.integers to be much smaller. Additionally it changes the shrinking order so that now size is considered before sign - e.g. -1 will be preferred to +10.

The new internal format for integers required some changes to the minimizer to make work well, so you may also see some improvements to example quality in unrelated areas.

3.44.12:
This changes Hypothesis's internal implementation of weighted sampling. This will affect example distribution and quality, but you shouldn't see any other effects.

3.44.11:
This is a change to some internals around how Hypothesis handles avoiding generating duplicate examples and seeking out novel regions of the search space.

You are unlikely to see much difference as a result of it, but it fixes a bug where an internal assertion could theoretically be triggered and has some minor effects on the distribution of examples so could potentially find bugs that have previously been missed.

3.44.10:
This patch avoids creating debug statements when debugging is disabled. Profiling suggests this is a 5-10% performance improvement
2018-01-19 08:58:25 +00:00
adam
eb7cbfd5fa py-hypothesis: updated to 3.44.4
3.44.4:
This release fixes :issue:1044, which slowed tests by up to 6% due to broken caching.
2018-01-01 21:14:47 +00:00
adam
463fd81224 py-hypothesis: updated to 3.44.3
3.44.3:
This release improves the shrinker in cases where examples drawn earlier can affect how much data is drawn later (e.g. when you draw a length parameter in a composite and then draw that many elements). Examples found in cases like this should now be much closer to minimal.

3.44.2:
This is a pure refactoring release which changes how Hypothesis manages its set of examples internally. It should have no externally visible effects.

3.44.1:
This release fixes :issue:`997`, in which under some circumstances the body of tests run under Hypothesis would not show up when run under coverage even though the tests were run and the code they called outside of the test file would show up normally.

3.44.0:
This release adds a new feature: The :ref:`@reproduce_failure <reproduce_failure>`, designed to make it easy to use Hypothesis's binary format for examples to reproduce a problem locally without having to share your example database between machines.

This also changes when seeds are printed:

They will no longer be printed for normal falsifying examples, as there are now adequate ways of reproducing those for all cases, so it just contributes noise.
They will once again be printed when reusing examples from the database, as health check failures should now be more reliable in this scenario so it will almost always work in this case.
2017-12-22 05:57:50 +00:00
adam
92332ce3fa py-hypothesis: updated to 3.42.2
3.42.2:
This patch fixes :issue:1017, where instances of a list or tuple subtype used as an argument to a strategy would be coerced to tuple.

3.42.1:
This release has some internal cleanup, which makes reading the code more pleasant and may shrink large examples slightly faster.

3.42.0:
This release deprecates :ref:faker-extra, which was designed as a transition strategy but does not support example shrinking or coverage-guided discovery.
2017-12-13 08:17:10 +00:00
adam
72908f5829 py-hypothesis: updated to 3.37.0
3.37.0:
This is a deprecation release for some health check related features.

The following are now deprecated:

* Passing exception_in_generation to suppress_health_check. This no longer does anything even when passed - All errors that occur during data generation will now be immediately reraised rather than going through the health check mechanism.

* Passing random_module to suppress_health_check. This hasn’t done anything for a long time, but was never explicitly deprecated. Hypothesis always seeds the random module when running @given tests, so this is no longer an error and suppressing it doesn’t do anything.

* Passing non-HealthCheck values in suppress_health_check. This was previously allowed but never did anything useful.

In addition, passing a non-iterable value as suppress_health_check will now raise an error immediately (it would never have worked correctly, but it would previously have failed later). Some validation error messages have also been updated.
2017-11-16 07:59:55 +00:00
adam
8a06fcc6f3 py-hypothesis: updated to 3.36.0
3.36.0:
This release adds a setting to the public API, and does some internal cleanup:
The :attr:`~hypothesis.settings.derandomize` setting is now documented
Removed - and disallowed - all 'bare excepts' in Hypothesis
Documented the :attr:`~hypothesis.settings.strict` setting as deprecated, and updated the build so our docs always match deprecations in the code.
2017-11-09 07:41:44 +00:00
adam
023cfd9fd9 py-hypothesis: updated to 3.34.1
3.34.1:

This patch updates the documentation to suggest :func:`builds(callable) <hypothesis.strategies.builds>` instead of :func:`just(callable()) <hypothesis.strategies.just>`.

3.34.0:

Hypothesis now emits deprecation warnings if you apply :func:`@given <hypothesis.given>` more than once to a target.

Applying :func:`@given <hypothesis.given>` repeatedly wraps the target multiple times. Each wrapper will search the space of of possible parameters separately. This is equivalent but will be much more inefficient than doing it with a single call to :func:`@given <hypothesis.given>`.

For example, instead of @given(booleans()) @given(integers()), you could write @given(booleans(), integers())
2017-11-06 10:39:08 +00:00
adam
d19a2de24b py-hypothesis: updated to 3.33.1
3.33.1:

This is a bugfix release:
* :func:`~hypothesis.strategies.builds` would try to infer a strategy for required positional arguments of the target from type hints, even if they had been given to :func:`~hypothesis.strategies.builds` as positional arguments (:issue:`946`). Now it only infers missing required arguments.
* An internal introspection function wrongly reported self as a required argument for bound methods, which might also have affected :func:`~hypothesis.strategies.builds`. Now it knows better.
2017-11-02 07:16:35 +00:00
adam
62db3b063d py-hypothesis: update to 3.33.0
3.33.0:
This release supports strategy inference for more field types in Django models() - you can now omit an argument for Date, Time, Duration, Slug, IP Address, and UUID fields.

Strategy generation for fields with grouped choices now selects choices from each group, instead of selecting from the group names.
2017-10-16 18:35:19 +00:00
adam
5dd7c0cf34 py-hypothesis: update to 3.31.2:
This release fixes some formatting and small typos/grammar issues in the documentation, specifically the page docs/settings.rst, and the inline docs for the various settings.
2017-10-05 06:48:38 +00:00
adam
2b5ade6e41 py-hypothesis: update to 3.31.1
3.31.1:

This release improves the handling of deadlines so that they act better with the shrinking process. This fixes :issue:`892`.

This involves two changes:

1. The deadline is raised during the initial generation and shrinking, and then lowered to the set value for final replay. This restricts our attention to examples which exceed the deadline by a more significant margin, which increases their reliability.

2. When despite the above a test still becomes flaky because it is significantly faster on rerun than it was on its first run, the error message is now more explicit about the nature of this problem, and includes both the initial test run time and the new test run time.

In addition, this release also clarifies the documentation of the deadline setting slightly to be more explicit about where it applies.
2017-09-30 13:12:04 +00:00
adam
2363cc6272 py-hypothesis: update to 3.26.0
3.26.0:
Hypothesis now emits deprecation warnings if you are using the legacy SQLite example database format, or the tool for merging them. These were already documented as deprecated, so this doesn't change their deprecation status, only that we warn about it.
2017-09-13 06:26:55 +00:00
adam
000a9fbb8c 3.24.1:
This release improves the reduction of examples involving floating point numbers to produce more human readable examples.
It also has some general purpose changes to the way the minimizer works internally, which may see some improvement in quality and slow down of test case reduction in cases that have nothing to do with floating point numbers.

3.24.0:
Hypothesis now emits deprecation warnings if you use example() inside a test function or strategy definition (this was never intended to be supported, but is sufficiently widespread that it warrants a deprecation path).
2017-09-08 11:03:28 +00:00
adam
d38f07dbfd 3.23.2:
This is a small refactoring release that removes a now-unused parameter to an internal API. It shouldn’t have any user visible effect.

3.23.1:
Hypothesis no longer propagates the dynamic scope of settings into strategy definitions.

This release is a small change to something that was never part of the public API and you will almost certainly not notice any effect unless you’re doing something surprising, but for example the following code will now give a different answer in some circumstances:

import hypothesis.strategies as st
from hypothesis import settings

CURRENT_SETTINGS = st.builds(lambda: settings.default)
(We don’t actually encourage you writing code like this)

Previously this would have generated the settings that were in effect at the point of definition of CURRENT_SETTINGS. Now it will generate the settings that are used for the current test.

It is very unlikely to be significant enough to be visible, but you may also notice a small performance improvement.
2017-09-04 17:28:45 +00:00
adam
82b892fa6b 3.22.0:
This release provides what should be a substantial performance improvement to numpy arrays generated using provided numpy support, and adds a new fill_value argument to arrays() to control this behaviour.
2017-08-27 12:16:06 +00:00
adam
5ebea45fca 3.18.5:
This is a bugfix release for ~hypothesis.strategies.integers. Previously the strategy would hit an internal assertion if passed non-integer bounds for min_value and max_value that had no integers between them. The strategy now raises InvalidArgument instead.
2017-08-19 12:16:20 +00:00
adam
a4d080325a 3.17.0:
This release documents the previously undocumented phases feature”, making it part of the official public API. It also updates how the example database is used. Principally:
* A Phases.reuse argument will now correctly control whether examples from the database are run (it previously did exactly the wrong thing and controlled whether examples would be saved).
* Hypothesis will no longer try to rerun all previously failing examples. Instead it will replay the smallest previously failing example and a selection of other examples that are likely to trigger any other bugs that will found. This prevents a previous failure from dominating your tests unnecessarily.
* As a result of the previous change, Hypothesis will be slower about clearing out old examples from the database that are no longer failing (because it can only clear out ones that it actually runs).
2017-08-13 09:46:55 +00:00
adam
af294efbad 3.16.1:
This release makes an implementation change to how Hypothesis handles certain internal constructs.

The main effect you should see is improvement to the behaviour and performance of collection types, especially ones with a min_size parameter. Many cases that would previously fail due to being unable to generate enough valid examples will now succeed, and other cases should run slightly faster.


3.16.0:
This release introduces a deprecation of the timeout feature. This results in the following changes:

Creating a settings object with an explicit timeout will emit a deprecation warning.
If your test stops because it hits the timeout (and has not found a bug) then it will emit a deprecation warning.
There is a new value unlimited which you can import from hypothesis. settings(timeout=unlimited) will not cause a deprecation warning.
There is a new health check, hung_test, which will trigger after a test has been running for five minutes if it is not suppressed.
2017-08-07 18:00:41 +00:00
adam
6f17243cf4 3.14.2:
This fixes a bug where Hypothesis would not work correctly on Python 2.7 if you had the typing module backport installed.
2017-08-04 04:57:52 +00:00
adam
66b29dfeeb 3.14.1
Fix bad header that somehow made it in
2017-08-03 07:42:09 +00:00
adam
5c7965ac27 3.14.0:
Hypothesis now understands inline type annotations
2017-07-24 10:23:57 +00:00
adam
3da7ac5f48 3.13.1:
Honour 'skip test' exceptions
2017-07-21 08:40:46 +00:00
adam
653c5ff053 3.13.0:
This release has two major aspects to it: The first is the introduction of :func:`~hypothesis.strategies.deferred`, which allows more natural definition of recursive (including mutually recursive) strategies.

The second is a number of engine changes designed to support this sort of strategy better. These should have a knock-on effect of also improving the performance of any existing strategies that currently generate a lot of data or involve heavy nesting by reducing their typical example size.
2017-07-17 07:05:34 +00:00
adam
a7f7608c7f 3.12.0:
This release makes some major internal changes to how Hypothesis represents data internally, as a prelude to some major engine changes that should improve data quality. There are no API changes, but it's a significant enough internal change that a minor version bump seemed warranted.

User facing impact should be fairly mild, but includes:
* All existing examples in the database will probably be invalidated. Hypothesis handles this automatically, so you don't need to do anything, but if you see all your examples disappear that's why.
* Almost all data distributions have changed significantly. Possibly for the better, possibly for the worse. This may result in new bugs being found, but it may also result in Hypothesis being unable to find bugs it previously did.
* Data generation may be somewhat faster if your existing bottleneck was in draw_bytes (which is often the case for large examples).
* Shrinking will probably be slower, possibly significantly.

If you notice any effects you consider to be a significant regression, please open an issue about them.
2017-07-07 15:41:18 +00:00
adam
f24a2cf600 3.11.6:
This release involves no functionality changes, but is the first to ship wheels as well as an sdist.

3.11.5:
This release provides a performance improvement to shrinking. For cases where there is some non-trivial "boundary" value (e.g. the bug happens for all values greater than some other value), shrinking should now be substantially faster. Other types of bug will likely see improvements too.

This may also result in some changes to the quality of the final examples - it may sometimes be better, but is more likely to get slightly worse in some edge cases. If you see any examples where this happens in practice, please report them.
2017-06-20 07:26:10 +00:00
adam
6095c235c1 Changes 3.11.4 :
This is a bugfix release: Hypothesis now prints explicit examples when running in verbose mode.
2017-06-19 06:36:29 +00:00
adam
ce32df85dd Changes 3.11.3:
Ensure we can sample from an OrderedDict without a warning
2017-06-12 10:19:44 +00:00
adam
44c3df1af7 Version 3.11.2:
Miscellaneous documentation updates and fixes
2017-06-10 19:18:35 +00:00
adam
76b6a4a641 3.11.1:
This is a minor ergonomics release. Tracebacks shown by pytest no longer include Hypothesis internals for test functions decorated with @given.
2017-05-29 06:52:11 +00:00
adam
b779ba0c2b Changes 3.11.0:
This is a feature release, adding datetime-related strategies to the core strategies.

extra.pytz.timezones allows you to sample pytz timezones from the Olsen database. Use directly in a recipe for tz-aware datetimes, or compose with st.none() to allow a mix of aware and naive output.

The new dates, times, datetimes, and timedeltas strategies in hypothesis.strategies are all constrained by objects of their type. This means that you can generate dates bounded by a single day (i.e. a single date), or datetimes constrained to the microsecond.

times and datetimes take an optional timezones= argument, which defaults to none() for naive times. You can use our extra strategy based on pytz, or roll your own timezones strategy with dateutil or even the standard library.

The old dates, times, and datetimes strategies in hypothesis.extra.datetimes are deprecated in favor of the new core strategies, which are more flexible and have no dependencies.
2017-05-24 11:28:37 +00:00
adam
37d6011a1b Changes 3.10.0:
Hypothesis now uses inspect.getfullargspec internally. On Python 2, there are no visible changes.

On Python 3 @given and @composite now preserve annotations on the decorated function. Keyword-only arguments are now either handled correctly (e.g. @composite), or caught in validation instead of silently discarded or raising an unrelated error later (e.g. @given).
2017-05-23 07:57:50 +00:00
adam
b5551950ee 3.9.0 - 2017-05-19
This is feature release, expanding the capabilities of the decimals strategy.
* The new (optional) places argument allows you to generate decimals with a certain number of places (e.g. cents, thousandths, satoshis).
* If allow_infinity is None, setting min_bound no longer excludes positive infinity and setting max_value no longer excludes negative infinity.
* All of NaN, -Nan, sNaN, and -sNaN may now be drawn if allow_nan is True, or if allow_nan is None and min_value or max_value is None.
* min_value and max_value may be given as decimal strings, e.g. "1.234".
2017-05-20 05:36:31 +00:00
adam
895b197073 Changes 3.8.5:
Import sqlite3 only if used; minor bugfixes
2017-05-17 13:01:58 +00:00
adam
705289ac84 Changes 3.8.3:
Remove pytest version check
2017-05-10 03:45:51 +00:00
wiz
aeebc43d46 Updated py-hypothesis to 3.8.2.
3.8.2 - 2017-04-26

This is a code reorganisation release that moves some internal test helpers out of the main source tree so as to not have changes to them trigger releases in future.

3.8.1 - 2017-04-26

This is a documentation release. Almost all code examples are now doctests checked in CI, eliminating stale examples.

3.8.0 - 2017-04-23

This is a feature release, adding the iterables strategy, equivalent to lists(...).map(iter) but with a much more useful repr. You can use this strategy to check that code doesn’t accidentally depend on sequence properties such as indexing support or repeated iteration.

3.7.4 - 2017-04-22

This is a bug fix release for a single bug:

    In 3.7.3, using @example and a pytest fixture in the same test could cause the test to fail to fill the arguments, and throw a TypeError.


3.7.3 - 2017-04-21

This release should include no user visible changes and is purely a refactoring release. This modularises the behaviour of the core “given” function, breaking it up into smaller and more accessible parts, but its actual behaviour should remain unchanged.

3.7.2 - 2017-04-21

This reverts an undocumented change in 3.7.1 which broke installation on debian stable: The specifier for the hypothesis[django] extra_requires had introduced a wild card, which was not supported on the default version of pip.

3.7.1 - 2017-04-21

This is a bug fix and internal improvements release.

    In particular Hypothesis now tracks a tree of where it has already explored. This allows it to avoid some classes of duplicate examples, and significantly improves the performance of shrinking failing examples by allowing it to skip some shrinks that it can determine can’t possibly work.
    Hypothesis will no longer seed the global random arbitrarily unless you have asked it to using random_module()
    Shrinking would previously have not worked correctly in some special cases on Python 2, and would have resulted in suboptimal examples.
2017-04-27 12:55:54 +00:00