Commit graph

51 commits

Author SHA1 Message Date
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
wiz
ff7355e72f Updated py-hypothesis to 3.7.0.
3.7.0 - 2017-03-20

This is a feature release.

New features:

    Rule based stateful testing now has an @invariant decorator that specifies methods that are run after init and after every step, allowing you to encode properties that should be true at all times. Thanks to Tom Prince for this feature.
    The decimals strategy now supports allow_nan and allow_infinity flags.
    There are significantly more strategies available for numpy, including for generating arbitrary data types. Thanks to Zac Hatfield Dodds for this feature.
    When using the data() strategy you can now add a label as an argument to draw(), which will be printed along with the value when an example fails. Thanks to Peter Inglesby for this feature.

Bug fixes:

    Bug fix: @composite now preserves functions’ docstrings.
    The build is now reproducible and doesn’t depend on the path you build it from. Thanks to Chris Lamb for this feature.
    numpy strategies for the void data type did not work correctly. Thanks to Zac Hatfield Dodds for this fix.

There have also been a number of performance optimizations:

    The permutations() strategy is now significantly faster to use for large lists (the underlying algorithm has gone from O(n^2) to O(n)).
    Shrinking of failing test cases should have got significantly faster in some circumstances where it was previously struggling for a long time.
    Example generation now involves less indirection, which results in a small speedup in some cases (small enough that you won’t really notice it except in pathological cases).
2017-04-19 17:27:15 +00:00
wiz
20a9f414c0 Updated py-hypothesis to 3.6.1.
3.6.1 - 2016-12-20

This release fixes a dependency problem and makes some small behind
the scenes improvements.

    The fake-factory dependency was renamed to faker. If you were
    depending on it through hypothesis[django] or hypothesis[fake-factory]
    without pinning it yourself then it would have failed to install
    properly. This release changes it so that hypothesis[fakefactory]
    (which can now also be installed as hypothesis[faker]) will
    install the renamed faker package instead.

    This release also removed the dependency of hypothesis[django]
    on hypothesis[fakefactory] - it was only being used for emails.
    These now use a custom strategy that isnât from fakefactory.

    As a result you should also see performance improvements of
    tests which generated User objects or other things with email
    fields, as well as better shrinking of email addresses.

    The distribution of code using nested calls to one_of or the
    | operator for combining strategies has been improved, as
    branches are now flattened to give a more uniform distribution.
    Examples using composite or flatmap should now shrink better.

    In particular this will affect things which work by first
    generating a length and then generating that many items, which
    have historically not shrunk very well.
2017-01-01 15:35:12 +00:00
wiz
fb3ba1bf08 Updated py-hypothesis to 3.6.0.
3.6.0 - 2016-10-31

This release reverts Hypothesis to its old pretty printing of lambda
functions based on attempting to extract the source code rather
than decompile the bytecode. This is unfortunately slightly inferior
in some cases and may result in you occasionally seeing things like
lambda x: <unknown> in statistics reports and strategy reprs.

This removes the dependencies on uncompyle6, xdis and spark-parser.

The reason for this is that the new functionality was based on
uncompyle6, which turns out to introduce a hidden GPLed dependency
- it in turn depended on xdis, and although the library was licensed
under the MIT license, it contained some GPL licensed source code
and thus should have been released under the GPL.

My interpretation is that Hypothesis itself was never in violation
of the GPL (because the license it is under, the Mozilla Public
License v2, is fully compatible with being included in a GPL licensed
work), but I have not consulted a lawyer on the subject. Regardless
of the answer to this question, adding a GPLed dependency will
likely cause a lot of users of Hypothesis to inadvertently be in
violation of the GPL.

As a result, if you are running Hypothesis 3.5.x you really should
upgrade to this release immediately.
2016-11-07 11:10:24 +00:00
wiz
d79366fd91 Add a comment about possible dependencies. 2016-10-19 12:45:00 +00:00
wiz
8e776f89f7 Updated py-hypothesis to 3.5.3.
3.5.3 - 2016-10-05

This is a bug fix release.

Bugs fixed:

    If the same test was running concurrently in two processes and there were examples already in the test database which no longer failed, Hypothesis would sometimes fail with a FileNotFoundError (IOError on Python 2) because an example it was trying to read was deleted before it was read. (Issue #372).
    Drawing from an integers() strategy with both a min_value and a max_value would reject too many examples needlessly. Now it repeatedly redraws until satisfied. (Pull request #366. Thanks to Calen Pennington for the contribution).

3.5.2 - 2016-09-24

This is a bug fix release.

    The Hypothesis pytest plugin broke pytest support for doctests. Now it doesn’t.

3.5.1 - 2016-09-23

This is a bug fix release.

    Hypothesis now runs cleanly in -B and -BB modes, avoiding mixing bytes and unicode.
    unittest.TestCase tests would now have shown up in the new statistics mode. Now they do.
    Similarly, stateful tests would not have shown up in statistics and now they do.
    Statistics now print with pytest node IDs (the names you’d get in pytest verbose mode).

3.5.0 - 2016-09-22

This is a feature release.

    fractions() and decimals() strategies now support min_value and max_value parameters. Thanks go to Anne Mulhern for the development of this feature.
    The Hypothesis pytest plugin now supports a –hypothesis-show-statistics parameter that gives detailed statistics about the tests that were run. Huge thanks to Jean-Louis Fuchs and Adfinis-SyGroup for funding the development of this feature.
    There is a new event() function that can be used to add custom statistics.

Additionally there have been some minor bug fixes:

    In some cases Hypothesis should produce fewer duplicate examples (this will mostly only affect cases with a single parameter).
    py.test command line parameters are now under an option group for Hypothesis (thanks to David Keijser for fixing this)
    Hypothesis would previously error if you used function annotations on your tests under Python 3.4.
    The repr of many strategies using lambdas has been improved to include the lambda body (this was previously supported in many but not all cases).
2016-10-19 12:42:56 +00:00
wiz
711a92aafb Updated py-hypothesis to 3.4.2.
3.4.2 - 2016-07-13

This is a bug fix release, fixing a number of problems with the settings system:

    Test functions defined using @given can now be called from other threads (Issue #337)
    Attempting to delete a settings property would previously have silently done the wrong thing. Now it raises an AttributeError.
    Creating a settings object with a custom database_file parameter was silently getting ignored and the default was being used instead. Now it’s not.

3.4.1 - 2016-07-07

This is a bug fix release for a single bug:

    On Windows when running two Hypothesis processes in parallel (e.g. using pytest-xdist) they could race with each other and one would raise an exception due to the non-atomic nature of file renaming on Windows and the fact that you can’t rename over an existing file. This is now fixed.

3.4.0 - 2016-05-27

This release is entirely provided by Lucas Wiman:

models() strategies from hypothesis.extra.django will now respect much more of Django’s validations out of the box. Wherever possible full_clean() should succeed.

In particular:

    The max_length, blank and choices kwargs are now respected.
    Add support for DecimalField.
    If a field includes validators, the list of validators are used to filter the field strategy.

3.3.0 - 2016-05-27

This release went wrong and is functionally equivalent to 3.2.0. Ignore it.
3.2.0 - 2016-05-19

This is a small single-feature release:

    All tests using @given now fix the global random seed. This removes the health check for that. If a non-zero seed is required for the final falsifying example, it will be reported. Otherwise Hypothesis will assume randomization was not a significant factor for the test and be silent on the subject. If you use the random_module() strategy this will continue to work and will always display the seed.

3.1.3 - 2016-05-01

Single bug fix release

    Another charmap problem. In 3.1.2 text/characters would break on systems which had /tmp/ mounted on a different partition than the Hypothesis storage directory (usually in home). This fixes that.

3.1.2 - 2016-04-30

Single bug fix release:

    Anything which used a text() or characters() strategy was broken on Windows and I hadn’t updated appveyor to use the new repository location so I didn’t notice. This is now fixed and windows support should work correctly.

3.1.1 - 2016-04-29

Minor bug fix release.

    Fix concurrency issue when running tests that use text() from multiple processes at once (Bug #302, thanks to Alex Chan).
    Improve performance of code using lists with max_size (thanks to Cristi Cobzarenco).
    Fix install on Python 2 with ancient versions of pip so that it installs the enum34 backport (thanks to Donald Stufft for telling me how to do this).
    Remove duplicated __all__ exports from hypothesis.strategies (thanks to Piët Delport).
    Update headers to point to new repository location.
    Allow use of strategies that can’t be used in find() (e.g. choices) in stateful testing.
2016-08-24 10:20:35 +00:00
wiz
e997ac68c2 Add missing py-sqlite3 dependency. Bump PKGREVISION. 2016-08-22 13:16:16 +00:00
wiz
daa46dfb94 Switch to MASTER_SITE_PYPI. 2016-06-08 17:49:19 +00:00