|
|
|
|
Changelog for python3-hypothesis4-4.57.1-lp152.1.3.noarch.rpm :
* Mon Nov 15 2021 Arachnos - update to version 4.57.1: * This patch improves the type hints and documentation for the django extra. There is no runtime change.- changes from version 4.57.0: * This release improves support for the SupportsOp protocols from the \"typing\" module when using on \"from_type()\" as outlined in issue [#2292]. The following types now generate much more varied strategies when called with \"from_type()\": + \"typing.SupportsAbs\" + \"typing.SupportsBytes\" + \"typing.SupportsComplex\" + \"typing.SupportsInt\" + \"typing.SupportsFloat\" + \"typing.SupportsRound\" * Note that using \"from_type()\" with one of the above strategies will not ensure that the the specified function will execute successfully (ie : the strategy returned for \"from_type(typing.SupportsAbs)\" may include NaNs or things this will cause the \"abs()\" function to error. ) * Thanks to Lea Provenzano for this patch.- changes from version 4.56.3: * This release fixes a small internal bug in shrinking which could have caused it to perform slightly more tests than were necessary. Fixing this shouldn\'t have much effect but it will make shrinking slightly faster.- changes from version 4.56.2: * This release removes an internal heuristic that was no longer providing much benefit. It is unlikely that there will be any user visible effect.- changes from version 4.56.1: * This release further improves the optimisation algorithm for targeted property-based testing.- changes from version 4.56.0: * This release enables deprecation warnings even when the \"verbosity\" setting is \"quiet\", in preparation for Hypothesis 5.0 (issue #2218). * Warnings can still be filtered by the standard mechanisms provided in the standard-library \"warnings\" module.- changes from version 4.55.4: * This release improves Hypothesis\'s management of the set of test cases it tracks between runs. It will only do anything if you have \"Phase.target\" enabled and an example database set. In those circumstances it should result in a more thorough and faster set of examples that are tried on each run.- changes from version 4.55.3: * This release makes Hypothesis better at generating test cases where generated values are duplicated in different parts of the test case. This will be especially noticeable with reasonably complex values, as it was already able to do this for simpler ones such as integers or floats.- changes from version 4.55.2: * This release expands the set of test cases that Hypothesis saves in its database for future runs to include a representative set of \"structurally different\" test cases - e.g. it might try to save test cases where a given list is empty or not. * Currently this is unlikely to have much user visible impact except to produce slightly more consistent behaviour between consecutive runs of a test suite. It is mostly groundwork for future improvements which will exploit this functionality more effectively.- changes from version 4.55.1: * This patch fixes issue #2257, where \"from_type()\" could incorrectly generate bytestrings when passed a generic \"typing.Sequence\" such as \"Sequence[set]\".- changes from version 4.55.0: * This release adds database support for targeted property-based testing, so the best examples based on the targeting will be saved and reused between runs. This is mostly laying groundwork for future features in this area, but will also make targeted property-based tests more useful during development, where the same tests tend to get run over and over again. * If \"max_examples\" is large, this may increase memory usage significantly under some circumstances, but these should be relatively rare. * This release also adds a dependency on the sortedcontainers package.- changes from version 4.54.2: * This release improves the optimisation algorithm for targeted property-based testing, so that it will find higher quality results more reliably. Specifically, in cases where it would previously have got near a local optimum, it will now tend to achieve the locally optimal value.- changes from version 4.54.1: * This release is mostly internal changes in support of better testing of the core engine. You are unlikely to see much effect, although some internal heuristics have changed slightly.- changes from version 4.54.0: * This release adds a dedicated phase for targeted property-based testing, and (somewhat) improves the targeting algorithm so that it will find higher quality results more reliably. This comes at a cost of making it more likely to get stuck in a local optimum.- changes from version 4.53.3: * This patch fixes \"from_type()\" with \"typing.Hashable\" and \"typing.Sized\", which previously failed with an internal error on Python 3.7 or later. * Thanks to Lea Provenzano for both reporting issue #2272 and writing the patch! * Fri Dec 13 2019 Arun Persaud - 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 AATTexample, AATTseed, or AATTreproduce_failure without AATTgiven. * Sat Dec 07 2019 Arun Persaud - 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 AATTsettings 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 , 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 AATTgiven, 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 AATTgiven 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 - 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 AATTgiven() work on any test runner, but our integrations to e.g. avoid example database collisions when combined with AATTpytest.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 AATTgiven 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 AATTgiven.- 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 AATTgiven 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 AATTrdturnermtl 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 AATTsettings and before AATTgiven 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 - 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 - 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 - 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 - 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 - Update to 4.28.2: * Various bugfixes and deprecations all around * Sat Jun 08 2019 Arun Persaud - 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 - 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 AATTst.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 AATTgiven, especially when the AATTsettings() decorator is also used * ixes a minor formatting issue the docstring of from_type() * Tue May 14 2019 Ondřej Súkup - 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 - Remove pandas dependency to make ring1 more happy- Update to 4.22.0: * Various small tweaks only * Mon May 06 2019 Tomáš Chvátal - 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 - 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 - 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 - 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 - 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 - Move name ahead of version in spec file to resolve build issues on older distributions * Sat Dec 08 2018 Arun Persaud - update to version 3.82.5: * This patch fixes issue #1667, where passing bounds of Numpy dtype int64 to integers() could cause errors on Python 3 due to internal rounding.- changes from version 3.82.4: * Hypothesis now seeds and resets the global state of np.random for each test case, to ensure that tests are reproducible. * This matches and complements the existing handling of the random module - Numpy simply maintains an independent PRNG for performance reasons.- changes from version 3.82.3 : * This is a no-op release to add the new Framework :: Hypothesis trove classifier to hypothesis on PyPI. * You can use it as a filter to find Hypothesis-related packages such as extensions as they add the tag over the coming weeks, or simply visit our curated list.- changes from version 3.82.2 : * The Hypothesis for Pandas extension is now listed in setup.py, so you can pip install hypothesis[pandas]. * Thu Nov 01 2018 Arun Persaud - update to version 3.82.1: * This patch fixes from_type() on Python 2 for classes where cls.__init__ is object.__init__. Thanks to ccxcz for reporting issue #1656.- changes from version 3.82.0: * The alphabet argument for text() now uses its default value of characters(blacklist_categories=(\'Cs\',)) directly, instead of hiding that behind alphabet=None and replacing it within the function. Passing None is therefore deprecated.- changes from version 3.81.0: * GenericStateMachine and RuleBasedStateMachine now raise an explicit error when instances of settings are assigned to the classes’ settings attribute, which is a no-op (issue [#1643]). Instead assign to SomeStateMachine.TestCase.settings, or use AATTsettings(...) as a class decorator to handle this automatically.- changes from version 3.80.0: * Since version 3.68.0, arrays() checks that values drawn from the elements and fill strategies can be safely cast to the dtype of the array, and emits a warning otherwise. This release expands the checks to cover overflow for finite complex64 elements and string truncation caused by too-long elements or trailing null characters (issue #1591).- changes from version 3.79.4: * Tests using AATTgiven now shrink errors raised from pytest helper functions, instead of reporting the first example found. This was previously fixed in version 3.56.0, but only for stateful testing.- changes from version 3.79.3: * Traceback elision is now disabled on Python 2, to avoid an import-time SyntaxError under Python < 2.7.9 (Python: bpo-21591, Hypothesis 3.79.2: issue #1648). * We encourage all users to upgrade to Python 3 before the end of 2019.- changes from version 3.79.2: * This patch shortens tracebacks from Hypothesis, so you can see exactly happened in your code without having to skip over irrelevant details about our internals (issue #848). In the example test (see pull request #1582), this reduces tracebacks from nine frames to just three - and for a test with multiple errors, from seven frames per error to just one! If you do want to see the internal details, you can disable frame elision by setting verbosity to debug.- changes from version 3.79.1: * The abstract number classes Number, Complex, Real, Rational, and Integral are now supported by the from_type() strategy. Previously, you would have to use register_type_strategy() before they could be resolved (issue [#1636]) * Sat Oct 20 2018 Arun Persaud - update to version 3.79.0: * This release adds a CLI flag for verbosity --hypothesis-verbosity to the Hypothesis pytest plugin, applied after loading the profile specified by --hypothesis-profile. Valid options are the names of verbosity settings, quiet, normal, verbose or debug.Thanks to Bex Dunn for writing this patch at the PyCon Australia sprints! * The pytest header now correctly reports the current profile if - -hypothesis-profile has been used. Thanks to Mathieu Paturel for t he contribution at the Canberra Python Hacktoberfest.- changes from version 3.78.0: * This release has deprecated the generation of integers, floats and fractions when the conversion of the upper and/ or lower bound is not 100% exact, e.g. when an integer gets passed a bound that is not a whole number. (issue #1625)- changes from version 3.77.0: * This minor release adds functionality to settings allowing it to be used as a decorator on RuleBasedStateMachine and GenericStateMachine.- changes from version 3.76.1: * This patch fixes some warnings added by recent releases of pydocstyle and mypy. * Sun Oct 14 2018 Arun Persaud - update to version 3.76.0: * This release deprecates using floats for min_size and max_size. * The type hint for average_size arguments has been changed from Optional[int] to None, because non-None values are always ignored and deprecated.- changes from version 3.75.4: * This patch adds more internal comments to the core engine’s sequence-length shrinker. There should be no user-visible change.- changes from version 3.75.3: * This patch adds additional comments to some of the core engine’s internal data structures. There is no user-visible change.- changes from version 3.75.2: * This patch avoids caching a trivial case, fixing issue #493.- changes from version 3.75.1: * This patch fixes a broken link in a docstring. Thanks to Benjamin Lee for this contribution!- changes from version 3.75.0: * This release deprecates the use of min_size=None, setting the default min_size to 0 (:issue: 1618).- changes from version 3.74.3: * This patch makes some small internal changes to comply with a new lint setting in the build. There should be no user-visible change.- changes from version 3.74.2: * This patch fixes issue #1153, where time spent reifying a strategy was also counted in the time spent generating the first example. Strategies are now fully constructed and validated before the timer is started.- changes from version 3.74.1: * This patch fixes some broken formatting and links in the documentation.- changes from version 3.74.0: * This release checks that the value of the print_blob setting is a PrintSettings instance. * Being able to specify a boolean value was not intended, and is now deprecated. In addition, specifying True will now cause the blob to always be printed, instead of causing it to be suppressed. * Specifying any value that is not a PrintSettings or a boolean is now an error.- changes from version 3.73.5: * Changes the documentation for hypothesis.strategies.datetimes, hypothesis.strategies.dates, hypothesis.strategies.times to use the new parameter names min_value and max_value instead of the deprecated names- changes from version 3.73.4: * This patch ensures that Hypothesis deprecation warnings display the code that emitted them when you’re not running in -Werror mode (issue #652).- changes from version 3.73.3: * Tracebacks involving AATTcomposite are now slightly shorter due to some internal refactoring.- changes from version 3.73.2: * This patch fixes errors in the internal comments for one of the shrinker passes. There is no user-visible change.- changes from version 3.73.1: * This patch substantially improves the distribution of data generated with recursive(), and fixes a rare internal error (issue [#1502]).- changes from version 3.73.0 : * This release adds the fulfill() function, which is designed for testing code that uses dpcontracts 0.4 or later for input validation. This provides some syntactic sugar around use of assume(), to automatically filter out and retry calls that cause a precondition check to fail (issue #1474).- changes from version 3.72.0 : * This release makes setting attributes of the hypothesis.settings class an explicit error. This has never had any effect, but could mislead users who confused it with the current settings instance hypothesis.settings.default (which is also immutable). You can change the global settings with settings profiles.- changes from version 3.71.11: * This patch factors out some common code in the shrinker for iterating over pairs of data blocks. There should be no user-visible change.- changes from version 3.71.10 : * This patch allows from_type() to handle the empty tuple type, typing.Tuple[()].- changes from version 3.71.9 : * This patch updates some internal comments for mypy. There is no user-visible effect, even for Mypy users.- changes from version 3.71.8: * This patch fixes a rare bug that would cause a particular shrinker pass to raise an IndexError, if a shrink improvement changed the underlying data in an unexpected way.- changes from version 3.71.7: * This release fixes the broken cross-references in our docs, and adds a CI check so we don’t add new ones. * Sun Sep 16 2018 Arun Persaud - update to version 3.71.6: * This patch fixes two bugs (issue #944 and issue #1521), where messages about AATTseed * This patch fixes a DeprecationWarning added in Python 3.8 (issue [#1576]). * Thanks to tirkarthi for this contribution!- changes from version 3.71.4: * This is a no-op release, which implements automatic DOI minting and code archival of Hypothesis via Zenodo. Thanks to CERN and the EU Horizon 2020 programme for providing this service! * Check our CITATION file for details, or head right on over to doi.org/10.5281/zenodo.1412597- changes from version 3.71.3: * This release adds the test name to some deprecation warnings, for easier debugging. * Thanks to Sanyam Khurana for the patch!- changes from version 3.71.2: * This release makes Hypothesis’s memory usage substantially smaller for tests with many examples, by bounding the number of past examples it keeps around. * You will not see much difference unless you are running tests with max_examples set to well over 1000, but if you do have such tests then you should see memory usage mostly plateau where previously it would have grown linearly with time.- changes from version 3.71.1: * This patch adds internal comments to some tree traversals in the core engine. There is no user-visible change. * Sun Sep 09 2018 Matěj Cepl - Add multibuild to allow running tests. * Sat Sep 08 2018 Arun Persaud - specfile: * updated pytest version, specified pytz version (from setup.py)- update to version 3.71.0: * many changes, see https://hypothesis.readthedocs.io/en/latest/changes.html * Wed Sep 05 2018 Matěj Cepl - Precompile Python files to avoid troubles with mtime and magic values. * Tue Sep 04 2018 Matěj Cepl - Clean up SPEC- Add %check section, but make it disabled per default (circular dependency on pytest) * Fri Aug 31 2018 Tomáš Chvátal - Drop the pytest-xdist dependency to build on Leap 42.3, as it does not run tests it was quite pointless * Mon Jul 23 2018 arunAATTgmx.de- update to version 3.66.6: * This patch ensures that Hypothesis fully supports Python 3.7, by upgrading from_type() (issue #1264) and fixing some minor issues in our test suite (issue #1148). * Sun Jul 22 2018 arunAATTgmx.de- update to version 3.66.5: * This patch fixes the online docs for various extras, by ensuring that their dependencies are installed on readthedocs.io (issue [#1326]). * Fri Jul 20 2018 arunAATTgmx.de- update to version 3.66.4: * This release improves the shrinker’s ability to reorder examples. * Thu Jul 12 2018 arunAATTgmx.de- update to version 3.66.1: * This patch fixes a rare bug where an incorrect percentage drawtime could be displayed for a test, when the system clock was changed during a test running under Python 2 (we use time.monotonic() where it is available to avoid such problems). It also fixes a possible zero-division error that can occur when the underlying C library double-rounds an intermediate value in math.fsum() and gets the least significant bit wrong. * Sat Jul 07 2018 arunAATTgmx.de- update to version 3.66.0: * This release improves validation of the alphabet argument to the text() strategy. The following misuses are now deprecated, and will be an error in a future version: + passing an unordered collection (such as set(\'abc\')), which violates invariants about shrinking and reproducibility + passing an alphabet sequence with elements that are not strings + passing an alphabet sequence with elements that are not of length one, which violates any size constraints that may apply * Fri Jul 06 2018 dmuellerAATTsuse.com- remove redundant pythons buildrequire * Sun Jul 01 2018 arunAATTgmx.de- specfile: * be more specific for %{python_sitelib} in %files- update to version 3.65.0: * This release deprecates the max_shrinks setting in favor of an internal heuristic. If you need to avoid shrinking examples, use the phases setting instead. (issue #1235)- changes from version 3.64.2: * This release fixes a bug where an internal assertion error could sometimes be triggered while shrinking a failing test.- changes from version 3.64.1: * This patch fixes type-checking errors in our vendored prety-printer, which were ignored by our mypy config but visible for anyone else (whoops). Thanks to Pi Delport for reporting issue [#1359] so promptly.- changes from version 3.64.0: * This release adds an interface which can be used to insert a wrapper between the original test function and AATTgiven (issue [#1257]). This will be particularly useful for test runner extensions such as pytest-trio, but is not recommended for direct use by other users of Hypothesis.- changes from version 3.63.0: * This release adds a new mechanism to infer strategies for classes defined using attrs, based on the the type, converter, or validator of each attribute. This inference is now built in to builds() and from_type(). * On Python 2, from_type() no longer generates instances of int when passed long, or vice-versa.- changes from version 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 read more about our type hints here. * It also adds the py.typed marker specified in PEP 561. After you pip install hypothesis, mypy 0.590 or later will therefore type-check your use of our public interface! * Sun Jun 24 2018 arunAATTgmx.de- specfile: * use %{version} in source- update to version 3.61.0: * This release deprecates the use of settings as a context manager, the use of which is somewhat ambiguous.Users should define settings with global state or with the AATTsettings(...) decorator.- changes from version 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 details here.- changes from version 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.- changes from version 3.59.3: * This is a no-op release to take into account some changes to the release process. It should have no user visible effect.- changes from version 3.59.2: * This adds support for partially sorting examples which cannot be fully sorted. For example, [5, 4, 3, 2, 1, 0] with a constraint that the first element needs to be larger than the last becomes [1, 2, 3, 4, 5, 0].- changes from version 3.59.1: * This patch uses random.getstate() and random.setstate() to restore the PRNG state after AATTgiven runs deterministic tests. Without restoring state, you might have noticed problems such as issue [#1266]. The fix also applies to stateful testing (issue #702).- changes from version 3.59.0: * This release adds the emails() strategy, which generates unicode strings representing an email address.- changes from version 3.58.1: * This improves the shrinker. It can now reorder examples: 3 1 2 becomes 1 2 3.- changes from version 3.58.0: * This adds a new extra timezones() strategy that generates dateutil timezones. Depends on python-dateutil. * Mon Jun 04 2018 toddrme2178AATTgmail.com- Use github source archive as recommended by upstream.- Remove unneeded python-hypothesis-build.patch * Thu May 31 2018 toddrme2178AATTgmail.com- Update to 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.- Update to 3.56.10 - 2018-05-16 * This release makes :obj:`~hypothesis.settings.define_setting` aprivate method, which has the effect of hiding it from the documentation.- Update to 3.56.9 * This is another release with no functionality changes as part of changes to Hypothesis\'s new release tagging scheme.- Update to 3.56.8 * This is a release with no functionality changes that moves Hypothesis over to anew release tagging scheme.- Update to 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 asignificant performance improvement.- Update to 3.56.6 * This patch contains further internal work to support Mypy. There are no user-visible changes... yet.- Update to 3.56.5 * This patch contains some internal refactoring to run :pypi:`mypy` in CI. There are no user-visible changes.- Update to 3.56.4 * This release involves some very minor internal clean up and should have no user visible effect at all.- Update to 3.56.3 * This release fixes a problem introduced in :ref:`3.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.- Update to 3.56.2 * This release fixes a problem introduced in :ref:`3.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).- Update to 3.56.1 * This release fixes a problem that was introduced in :ref:`3.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).- Update to 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 (:issue:`535`). + Deprecated settings that no longer have any effect are no longer shown in the ``__repr__`` unless set to a non-default value. + :obj:`~hypothesis.settings.perform_health_check` is deprecated, as it duplicates :obj:`~hypothesis.settings.suppress_health_check`. + :obj:`~hypothesis.settings.max_iterations` is deprecated and disabled, because we can usually get better behaviour from an internal heuristic than a user-controlled setting. + :obj:`~hypothesis.settings.min_satisfying_examples` is deprecated and disabled, due to overlap with the :obj:`~hypothesis.settings.HealthCheck.filter_too_much` healthcheck and poor interaction with :obj:`~hypothesis.settings.max_examples`. + :envvar:`HYPOTHESIS_VERBOSITY_LEVEL` is now deprecated. Set :obj:`~hypothesis.settings.verbosity` through the profile system instead. + Examples tried by :func:`~hypothesis.find` are now reported at ``debug`` verbosity level (as well as ``verbose`` level).- Update to 3.55.6 * This release fixes a somewhat obscure condition (:issue:`1230`) under which you could occasionally see a failing test trigger an assertion error inside Hypothesis instead of failing normally.- Update to 3.55.5 * This patch fixes one possible cause of :issue:`966`. When running Python 2 with hash randomisation, passing a :obj:`python:bytes` object to :func:`python:random.seed` would use ``version=1``, which broke :obj:`~hypothesis.settings.derandomize` (because the seed depended on arandomised hash). If :obj:`~hypothesis.settings.derandomize` is * still * nondeterministic for you, please open an issue.- Update to 3.55.4 * This patch makes a variety of minor improvements to the documentation, and improves a few validation messages for invalid inputs.- Update to 3.55.3 * This release updates the URL metadata associated with the PyPI package (again). It has no other user visible effects.- Update to 3.55.2 * This release updates the URL metadata associated with the PyPI package. It has no other user visible effects.- Update to 3.55.1 * This patch relaxes constraints on the expected values returned by the standard library function :func:`hypot` and the internal helper function :func:`~hypotheses.internal.cathetus`, this to fix near-exact test-failures on some 32-bit systems.- Update to 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.- Update to 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`. Thanks to J.J. Green for this feature.- Update to 3.53.0 * This release removes support for Django 1.8, which reached end of life on 2018-04-01. You can see Django\'s release and support schedule `on the Django Project website `_.- Update to 3.52.3 * This patch fixes the :obj:`~hypothesis.settings.min_satisfying_examples` settings documentation, by explaining that example shrinking is tracked at the level of the underlying bytestream rather than the output value. * The output from :func:`~hypothesis.find` in verbose mode has also been adjusted - see :ref:`the example session ` - to avoid duplicating lines when the example repr is constant, even if the underlying representation has been shrunken.- Update to 3.52.2 * This release improves the output of failures with :ref:`rule based stateful testing ` in two ways: The output from it is now usually valid Python code. When the same value has two different names because it belongs to two different bundles, it will now display with the name associated with the correct bundle for a rule argument where it is used.- Update to 3.52.1 * This release improves the behaviour of :doc:`stateful testing ` in two ways: Previously some runs would run no steps (:issue:`376`). This should no longer happen. RuleBasedStateMachine tests which used bundles extensively would often shrink terribly. This should now be significantly improved, though there is likely a lot more room for improvement. * This release also involves a low level change to how ranges of integers are handles which may result in other improvements to shrink quality in some cases.- Update to 3.52.0 * This release deprecates use of :func:`AATTsettings(...) ` as a decorator, on functions or methods that are not also decorated with :func:`AATTgiven `. You can still apply these decorators in any order, though you should only do so once each. * Applying :func:`AATTgiven ` twice was already deprecated, and applying :func:`AATTsettings(...) ` twice is deprecated in this release and will become an error in a future version. Neither could ever be used twice to good effect. * Using :func:`AATTsettings(...) ` as the sole decorator on atest is completely pointless, so this common usage error will become an error in a future version of Hypothesis.- Update to 3.51.0 * This release deprecates the ``average_size`` argument to :func:`~hypothesis.strategies.lists` and other collection strategies. You should simply delete it wherever it was used in your tests, as it no longer has any effect. In early versions of Hypothesis, the ``average_size`` argument was treated as a hint about the distribution of examples from a strategy. Subsequent improvements to the conceptual model and the engine for generating and shrinking examples mean it is more effective to simply describe what constitutes a valid example, and let our internals handle the distribution.- Update to 3.50.3 * This patch contains some internal refactoring so that we can run with warnings as errors in CI.- Update to 3.50.2 * This has no user-visible changes except one slight formatting change to one docstring, to avoid a deprecation warning.- Update to 3.50.1 * This patch fixes an internal error introduced in :ref:`3.48.0 `, where a check for the Django test runner would expose import-time errors in Django configuration (:issue:`1167`).- Update to 3.50.0 * This release improves validation of numeric bounds for some strategies. + :func:`~hypothesis.strategies.integers` and :func:`~hypothesis.strategies.floats` now raise ``InvalidArgument`` if passed a ``min_value`` or ``max_value`` which is not an instance of :class:`~python:numbers.Real`, instead of various internal errors. + :func:`~hypothesis.strategies.floats` now converts its bounding values to the nearest float above or below the min or max bound respectively, instead of just casting to float. The old behaviour was incorrect in that you could generate ``float(min_value)``, even when this was less than ``min_value`` itself (possible with eg. fractions). + When both bounds are provided to :func:`~hypothesis.strategies.floats` but there are no floats in the interval, such as ``[(2 * *54)+1 .. (2 * *55)-1]``, InvalidArgument is raised. + :func:`~hypothesis.strategies.decimals` gives a more useful error message if passed a string that cannot be converted to :class:`~python:decimal.Decimal` in a context where this error is not trapped. Code that previously * *seemed * * to work may be explicitly broken if there were no floats between ``min_value`` and ``max_value`` (only possible with non-float bounds), or if a bound was not a :class:`~python:numbers.Real` number but still allowed in :obj:`python:math.isnan` (some custom classes with a ``__float__`` method).- Update to 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`.- Update to 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.- Update to 3.48.1 * This patch will minimize examples that would come out non-minimal in previous versions. Thanks to Kyle Reeve for this patch.- Update to 3.48.0 * This release improves some \"unhappy paths\" when using Hypothesis with the standard library :mod:`python:unittest` module: + Applying :func:`AATTgiven ` to a non-test method which is overridden from :class:`python:unittest.TestCase`, such as ``setUp``, raises :attr:`a new health check `. (:issue:`991`) + Using :meth:`~python:unittest.TestCase.subTest` within a test decorated with :func:`AATTgiven ` 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:`AATTgiven `. (:issue:`1071`) + :func:`AATTgiven ` 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:`AATTgiven ` instead of :class:`hypothesis.extra.django.TestCase` raises an explicit error instead of running all examples in a single database transaction.- Update to 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.- Update to 3.46.2 * This release removes an unnecessary branch from the code, and has no user-visible impact.- Update to 3.46.1 * This changes only the formatting of our docstrings and should have no user-visible effects.- Update to 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.- Update to 3.45.5 * This patch improves strategy inference in :mod:`hypothesis.extra.django` to account for some validators in addition to field type - see :issue:`1116` for ongoing work in this space. Specifically, if a :class:`~django:django.db.models.CharField` or :class:`~django:django.db.models.TextField` has an attached :class:`~django:django.core.validators.RegexValidator`, we now use :func:`~hypothesis.strategies.from_regex` instead of :func:`~hypothesis.strategies.text` as the underlying strategy. This allows us to generate examples of the default :class:`~django:django.contrib.auth.models.User` model, closing :issue:`1112`.- Update to 3.45.4 * This patch improves some internal debugging information, fixes atypo in a validation error message, and expands the documentation for new contributors.- Add license file * Tue Mar 06 2018 aplanasAATTsuse.com- Allows Recommends and Suggest in Fedora * Fri Mar 02 2018 chrisAATTcomputersalat.de- fix deps for setuptools * Tue Feb 27 2018 aplanasAATTsuse.com- Recommends only for SUSE * Fri Feb 23 2018 tbechtoldAATTsuse.comupdate to version 3.45.3 * Bump version to 3.44.26 and update changelog * That doesn\'t need to be conditional in the shrinker * Add release notes * Wrong backticks * Response to review * Switch over to an adaptive greedy algorithm * Clarify dependencies on enum34, Django * don\'t try to assign to *args * Don\'t split expression over multiple lines needlessly * define labels in top-level constants since they\'re expensive-ish to compute * Change how we track whether a block is shrinking * Add tests for zig zagging behaviour * Update isort from 4.2.15 to 4.3.2 * Add a section about deferring errors * specify target and args for build() together as *target_and_args * Fix typo * Bump version to 3.44.17 and update changelog * Add flaky annotation to test_can_generate_interval_endpoints * Add notion of labels to strategies * Bump version to 3.44.25 and update changelog * Update pytest from 3.3.2 to 3.4.0 * address more code review comments * Bump version to 3.44.19 and update changelog * Remove just and of course * Bump version to 3.45.2 and update changelog * don\'t refer to hypothesis_internal_target from bad implementation * Add a release note for the source changes * Add quality tests on Python 2 * Update safety from 1.6.1 to 1.7.0 * Fix typo in docstring * Bump the required version of attrs * Fix unbalanced quotes * Pass access to blocks and intervals through a level of indirection * Run \'make format\' with the new version of isort * dont use \'target\' in naming arg to builds() * Improve section on testing * Fix tests expecting specific example counts * add docstrings in base_defines_strategy * fix test_{nested_}discarded_intervals_are_not_in_labels to not assert exact equality * Clean up argument handling logic so we have full coverage again * Deal with another old-typing-module problem * write release note * Update isort from 4.3.2 to 4.3.3 * Run \'make requirements\' * Add tests for labelling behaviour * Expand on what we track * Whoops new style class * Update pytz from 2017.3 to 2018.3 * Move interval calculation to shrinker * Convert types from strings to hbytes * Only replace examples, not joined intervals. Make more things examples * Switch hyphens to em-dashes * Update autoflake from 1.0 to 1.1 * Bump version to 3.44.21 and update changelog * Update python-gitlab from 1.2.0 to 1.3.0 * Use more descriptive names * Move instructions on running tests to testing guide * Lets not have slow tests like that in tests/cover * Track changed blocks and remove a common offset from them * give every Example a label * Bump version to 3.44.18 and update changelog * Update isort from 4.3.3 to 4.3.4 * Add tests for new behaviour * Bump version to 3.44.22 and update changelog * test_saves_negated_examples_in_covering docstring wording tweak * remove old implementation * Fix style issues in src * fix based on Zac\'s code review * Update imagesize from 0.7.1 to 1.0.0 * Update coverage from 4.5 to 4.5.1 * Update tests to account for new covering examples * Update certifi from 2017.11.5 to 2018.1.18 * Update typing from 3.6.2 to 3.6.4 * Track examples by draw index * rename target arg so we can use targets requiring an argument \'target\' * Update babel from 2.5.2 to 2.5.3 * Update pytest-xdist from 1.21.0 to 1.22.0 * Add a release note * Monospace engine.py * Move flake8 config to tox.ini * Add flake8-docstrings * improve test_saves_negated_examples_in_covering to check what we actually care about * tweaks from code review * There was no good reason for that test to be that complicated * Correct env naming * Clean up unfinished examples at the end * Add a guide for working on internals * ideally -> usually * Update autopep8 from 1.3.3 to 1.3.4 * Bump version to 3.45.3 and update changelog * Bump version to 3.45.0 and update changelog * Make test_minimize_sets_of_sets non-flaky * Remove seed * Remove reference to intervals * Update coverage from 4.4.2 to 4.5 * Bump version to 3.45.1 and update changelog * Slight rewording * Bump version to 3.44.24 and update changelog * Update doctest * Bump version to 3.44.20 and update changelog * add myself to contributors * Bump version to 3.44.23 and update changelog * Update babel from 2.5.1 to 2.5.2 * don\'t use backticks in exception messages * remove duplicate * Change the way we calculate average_size\'s default * fix formatting of release file * Remove a bunch of dead code and comments * Revert \"Switch hyphens to em-dashes\" * Track labels on examples * Fix style issues in tests * Clarify specificity there * Update sphinx from 1.6.6 to 1.6.7 * Update sphinx from 1.6.7 to 1.7.0 * Those spaces aren\'t needed * Run tests on 2.7.14 * Just exit with the return code * fix indentation of docstrings produced by renamed_arguments * fix formatting * Update pygithub from 1.35 to 1.36- Use pythonhosted.org sdist for Source- Comment BuildRequires for tests. Tests in %check section are currently disabled * Wed Jan 17 2018 tchvatalAATTsuse.com- Condition py2 only dependencies so we do not pull them on py3 only scenario * Wed Jan 17 2018 arunAATTgmx.de- update to version 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 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.- changes from version 3.44.15: * from_type() can now resolve recursive types such as binary trees (issue #1004). Detection of non-type arguments has also improved, leading to better error messages in many cases involving forward references.- changes from version 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.- changes from version 3.44.13: * This release changes the average bit length of values drawn from 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.- changes from version 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.- changes from version 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.- changes from version 3.44.10: * This patch avoids creating debug statements when debugging is disabled. Profiling suggests this is a 5-10% performance improvement (issue #1040). * Sat Jan 06 2018 arunAATTgmx.de- update to version 3.44.9: * This patch blacklists null characters (\'\\x00\') in automatically created strategies for Django CharField and TextField, due to a database issue which was recently fixed upstream (Hypothesis issue [#1045]). * Sat Jan 06 2018 arunAATTgmx.de- update to version 3.44.8: * This release makes the Hypothesis shrinker slightly less greedy in order to avoid local minima - when it gets stuck, it makes a small attempt to search around the final example it would previously have returned to find a new starting point to shrink from. This should improve example quality in some cases, especially ones where the test data has dependencies among parts of it that make it difficult for Hypothesis to proceed. * Thu Jan 04 2018 arunAATTgmx.de- update to version 3.44.7: * This release adds support for Django 2 in the hypothesis-django extra. * This release drops support for Django 1.10, as it is no longer supported by the Django team. * Wed Jan 03 2018 arunAATTgmx.de- update to version 3.44.6: * This release speeds up test case reduction in many examples by being better at detecting large shrinks it can use to discard redundant parts of its input. This will be particularly noticeable in examples that make use of filtering and for some integer ranges.- changes from version 3.44.5: * This is a no-op release that updates the year range on all of the copyright headers in our source to include 2018. * Wed Jan 03 2018 tchvatalAATTsuse.com- Disable the tests as it is too flaky to be reliable * Sun Dec 31 2017 arunAATTgmx.de- update to version 3.44.4: * This release fixes issue #1044, which slowed tests by up to 6% due to broken caching. * Thu Dec 21 2017 arunAATTgmx.de- update to version 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.- changes from version 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.- changes from version 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.- changes from version 3.44.0: * This release adds a new feature: The AATTreproduce_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.- changes from version 3.43.1: * This release fixes a bug with Hypothesis’s database management - examples that were found in the course of shrinking were saved in a way that indicated that they had distinct causes, and so they would all be retried on the start of the next test. The intended behaviour, which is now what is implemented, is that only a bounded subset of these examples would be retried. * Sun Dec 17 2017 arunAATTgmx.de- update to version 3.43.0: * HypothesisDeprecationWarning now inherits from FutureWarning instead of DeprecationWarning, as recommended by PEP 565 for user-facing warnings (issue #618). If you have not changed the default warnings settings, you will now see each distinct HypothesisDeprecationWarning instead of only the first. * Fri Dec 15 2017 ecsosAATTopensuse.org- Add patch python-hypothesis-build.patch to fix Factory build error * Thu Dec 14 2017 tchvatalAATTsuse.com- Update to 3.42.2: * Few tiny fixes- Switch to github tarball to contain tests- Make sure to state all buildtime dependencies * Tue Dec 12 2017 arunAATTgmx.de- update to version 3.42.1: * This release has some internal cleanup, which makes reading the code more pleasant and may shrink large examples slightly faster. * Sat Dec 09 2017 arunAATTgmx.de- specfile: * removed conditional for test as requested in SR 555280 * added coverage as a requirement- update to version 3.42.0: * This release deprecates hypothesis[fakefactory], which was designed as a transition strategy but does not support example shrinking or coverage-guided discovery. * Thu Dec 07 2017 arunAATTgmx.de- update to version 3.41.0: * sampled_from() can now sample from one-dimensional numpy ndarrays. Sampling from multi-dimensional ndarrays still results in a deprecation warning. Thanks to Charlie Tanksley for this patch. * Wed Dec 06 2017 arunAATTgmx.de- update to version 3.40.1: 3.40.1 - 2017-12-04 * This release makes two changes: + It makes the calculation of some of the metadata that Hypothesis uses for shrinking occur lazily. This should speed up performance of test case generation a bit because it no longer calculates information it doesn’t need. + It improves the shrinker for certain classes of nested examples. e.g. when shrinking lists of lists, the shrinker is now able to concatenate two adjacent lists together into a single list. As a result of this change, shrinking may get somewhat slower when the minimal example found is large.- changes from version 3.40.0: * This release improves how various ways of seeding Hypothesis interact with the example database: + Using the example database with seed() is now deprecated. You should set database=None if you are doing that. This will only warn if you actually load examples from the database while using AATTseed. + The derandomize will behave the same way as AATTseed. + Using --hypothesis-seed will disable use of the database. + If a test used examples from the database, it will not suggest using a seed to reproduce it, because that won’t work.- changes from version 3.39.0: * This release adds a new health check that checks if the smallest “natural” possible example of your test case is very large - this will tend to cause Hypothesis to generate bad examples and be quite slow.- changes from version 3.38.9: * This is a documentation release to improve the documentation of shrinking behaviour for Hypothesis’s strategies.- changes from version 3.38.8: * This release improves the performance of characters() when using blacklist_characters and from_regex() when using negative character classes.- changes from version 3.38.7: * This is a patch release for from_regex(), which had a bug in handling of the re.VERBOSE flag (issue #992). Flags are now handled correctly when parsing regex. * Tue Nov 28 2017 arunAATTgmx.de- update to version 3.38.6: * This patch changes a few byte-string literals from double to single quotes, thanks to an update in unify. There are no user-visible changes. * Sun Nov 26 2017 arunAATTgmx.de- update to version 3.38.5: * This fixes the repr of strategies using lambda that are defined inside decorators to include the lambda source. This would mostly have been visible when using the statistics functionality - lambdas used for e.g. filtering would have shown up with a as their body. This can still happen, but it should happen less often now. * Wed Nov 22 2017 arunAATTgmx.de- update to version 3.38.4: * This release updates the reported statistics so that they show approximately what fraction of your test run time is spent in data generation (as opposed to test execution).- changes from version 3.38.3: * This is a documentation release, which ensures code examples are up to date by running them as doctests in CI (issue #711).- changes from version 3.38.2: * This release changes the behaviour of the deadline setting when used with data(): Time spent inside calls to data.draw will no longer be counted towards the deadline time. * As a side effect of some refactoring required for this work, the way flaky tests are handled has changed slightly. You are unlikely to see much difference from this, but some error messages will have changed.- changes from version 3.38.1: * This patch has a variety of non-user-visible refactorings, removing various minor warts ranging from indirect imports to typos in comments. * Sun Nov 19 2017 arunAATTgmx.de- update to version 3.38.0: * This release overhauls the health check system in a variety of small ways. It adds no new features, but is nevertheless a minor release because it changes which tests are likely to fail health checks. * The most noticeable effect is that some tests that used to fail health checks will now pass, and some that used to pass will fail. These should all be improvements in accuracy. In particular: + New failures will usually be because they are now taking into account things like use of data() and assume() inside the test body. + New failures may also be because for some classes of example the way data generation performance was measured was artificially faster than real data generation (for most examples that are hitting performance health checks the opposite should be the case). + Tests that used to fail health checks and now pass do so because the health check system used to run in a way that was subtly different than the main Hypothesis data generation and lacked some of its support for e.g. large examples. * If your data generation is especially slow, you may also see your tests get somewhat faster, as there is no longer a separate health check phase. This will be particularly noticeable when rerunning test failures. * Tue Nov 14 2017 arunAATTgmx.de- update to version 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 AATTgiven 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. * Sat Nov 11 2017 arunAATTgmx.de- update to version 3.36.1: * This is a yak shaving release, mostly concerned with our own tests. While getfullargspec() was documented as deprecated in Python 3.5, it never actually emitted a warning. Our code to silence this (nonexistent) warning has therefore been removed. We now run our tests with DeprecationWarning as an error, and made some minor changes to our own tests as a result. This required similar upstream updates to coverage and execnet (a test-time dependency via pytest-xdist). There is no user-visible change in Hypothesis itself, but we encourage you to consider enabling deprecations as errors in your own tests. * Tue Nov 07 2017 arunAATTgmx.de- update to version 3.36.0: * This release adds a setting to the public API, and does some internal cleanup: + The derandomize setting is now documented (issue #890) + Removed - and disallowed - all ‘bare excepts’ in Hypothesis (issue #953) + Documented the strict setting as deprecated, and updated the build so our docs always match deprecations in the code.- changes from version 3.35.0: * This minor release supports constraining uuids() to generate uuid.UUID`s of a particular version. (:issue:`721) * Sat Nov 04 2017 arunAATTgmx.de- update to version 3.34.1: * This patch updates the documentation to suggest builds(callable) instead of just(callable()). * Fri Nov 03 2017 arunAATTgmx.de- update to version 3.34.0: * Hypothesis now emits deprecation warnings if you apply AATTgiven more than once to a target. Applying AATTgiven 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 AATTgiven. For example, instead of AATTgiven(booleans()) AATTgiven(integers()), you could write AATTgiven(booleans(), integers())- changes from version 3.33.1 : * builds() would try to infer a strategy for required positional arguments of the target from type hints, even if they had been given to 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 builds(). Now it knows better. * Tue Oct 17 2017 arunAATTgmx.de- update to version 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. (issue #642) * Strategy generation for fields with grouped choices now selects choices from each group, instead of selecting from the group names. * Sun Oct 15 2017 arunAATTgmx.de- specfile: * removed sed for src/hypothesis/tools/mergedbs.py, not in tar-ball anymore- update to version 3.32.2: * This patch removes the mergedb tool, introduced in Hypothesis 1.7.1 on an experimental basis. It has never actually worked, and the new Hypothesis example database is designed to make such a tool unnecessary.- changes from version 3.32.1: * This patch has two improvements for strategies based on enumerations. * from_type() now handles enumerations correctly, delegating to sampled_from(). Previously it noted that Enum.__init__ has no required arguments and therefore delegated to builds(), which would subsequently fail. * When sampling from an enum.Flag, we also generate combinations of members. Eg for Flag(\'Permissions\', \'READ, WRITE, EXECUTE\') we can now generate, Permissions.READ, Permissions.READ|WRITE, and so on. * Mon Oct 09 2017 arunAATTgmx.de- update to version 3.32.0: * This changes the default value of use_coverage=True to True when running on pypy (it was already True on CPython). It was previously set to False because we expected it to be too slow, but recent benchmarking shows that actually performance of the feature on pypy is fairly acceptable - sometimes it’s slower than on CPython, sometimes it’s faster, but it’s generally within a factor of two either way.- changes from version 3.31.6: * This patch improves the quality of strategies inferred from Numpy dtypes: + Integer dtypes generated examples with the upper half of their (non-sign) bits set to zero. The inferred strategies can now produce any representable integer. + Fixed-width unicode- and byte-string dtypes now cap the internal example length, which should improve example and shrink quality. + Numpy arrays can only store fixed-size strings internally, and allow shorter strings by right-padding them with null bytes. Inferred string strategies no longer generate such values, as they can never be retrieved from an array. This improves shrinking performance by skipping useless values. + This has already been useful in Hypothesis - we found an overflow bug in our Pandas support, and as a result indexes() and range_indexes() now check that min_size and max_size are at least zero.- changes from version 3.31.5: * This release fixes a performance problem in tests where + use_coverage is set to True. + Tests experience a slow-down proportionate to the amount of code they cover. This is still the case, but the factor is now low enough that it should be unnoticeable. Previously it was large and became much larger in 3.28.4.- changes from version 3.31.4: * from_type() failed with a very confusing error if passed a NewType() (issue #901). These psudeo-types are now unwrapped correctly, and strategy inference works as expected. * Fri Oct 06 2017 arunAATTgmx.de- update to version 3.31.3: * This release makes some small optimisations to our use of coverage that should reduce constant per-example overhead. This is probably only noticeable on examples where the test itself is quite fast. On no-op tests that don’t test anything you may see up to a fourfold speed increase (which is still significantly slower than without coverage). On more realistic tests the speed up is likely to be less than that. * Thu Oct 05 2017 dimstarAATTopensuse.org- Add python-attrs and python-coverage requires, matching the info of setup.py. * Tue Oct 03 2017 arunAATTgmx.de- update to version 3.31.2: * long list of updates, see https://hypothesis.readthedocs.io/en/latest/changes.html * Mon Jul 10 2017 jengelhAATTinai.de- Ensure neutrality of description. * Thu Jun 29 2017 aloisioAATTgmx.com- Update to version 3.11.6 (see https://github.com/HypothesisWorks/hypothesis-python/blob/3.11.6/docs/changes.rst)- Added fdupes- Updated homepage URL * Tue Feb 21 2017 jmatejekAATTsuse.com- update for singlespec- test requirements are now conditional --with=test, to shorten build loop for new submission (this will be reverted soon)- update to 3.6.1 * better thread safety * support for --hypothesis-show-statistics in pytest * better python 3.4 support * renamed fake-factory dependency to Faker * Thu May 12 2016 toddrme2178AATTgmail.com- Fix download URL. * Mon May 09 2016 toddrme2178AATTgmail.com- Update to 3.1.3 + 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.- Update to 3.1.2 + 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.- Update to 3.1.1 + 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.- Update to 3.1.0 * Add a ‘nothing’ strategy that never successfully generates values. * sampled_from() and one_of() can both now be called with an empty argument list, in which case they also never generate any values. * one_of may now be called with a single argument that is a collection of strategies as well as as varargs. * Add a ‘runner’ strategy which returns the instance of the current test object if there is one. * ‘Bundle’ for RuleBasedStateMachine is now a normal(ish) strategy and can be used as such. * Tests using RuleBasedStateMachine should now shrink significantly better. * Hypothesis now uses a pretty-printing library internally, compatible with IPython’s pretty printing protocol (actually using the same code). This may improve the quality of output in some cases. * As a ‘phases’ setting that allows more fine grained control over which parts of the process Hypothesis runs * Add a suppress_health_check setting which allows you to turn off specific health checks in a fine grained manner. * Fix a bug where lists of non fixed size would always draw one more element than they included. This mostly didn’t matter, but if would cause problems with empty strategies or ones with side effects. * Add a mechanism to the Django model generator to allow you to explicitly request the default value (thanks to Jeremy Thurgood for this one).- Update to 3.0.5 * Fix a bug where Hypothesis would now error on py.test development versions.- Update to 3.0.4 * Fix a bug where Hypothesis would error when running on Python 2.7.3 or earlier because it was trying to pass a bytearray object to struct.unpack (which is only supported since 2.7.4).- Update to 3.0.3 * Fix version parsing of py.test to work with py.test release candidates * More general handling of the health check problem where things could fail because of a cache miss - now one “free” example is generated before the start of the health check run.- Update to 3.0.2 * Under certain circumstances, strategies involving text() buried inside some other strategy (e.g. text().filter(...) or recursive(text(), ...)) would cause a test to fail its health checks the first time it ran. This was caused by having to compute some related data and cache it to disk. On travis or anywhere else where the .hypothesis directory was recreated this would have caused the tests to fail their health check on every run. This is now fixed for all the known cases, although there could be others lurking.- Update to 3.0.1 * Fix a case where it was possible to trigger an “Unreachable” assertion when running certain flaky stateful tests. * Improve shrinking of large stateful tests by eliminating a case where it was hard to delete early steps. * Improve efficiency of drawing binary(min_size=n, max_size=n) significantly by provide a custom implementation for fixed size blocks that can bypass a lot of machinery. * Set default home directory based on the current working directory at the point Hypothesis is imported, not whenever the function first happens to be called.- Update to 3.0.0 + Externally this looks like a very small release. It has one small breaking change that probably doesn’t affect anyone at all (some behaviour that never really worked correctly is now outright forbidden) but necessitated a major version bump and one visible new feature. Internally this is a complete rewrite. Almost nothing other than the public API is the same. + New features: * Addition of data() strategy which allows you to draw arbitrary data interactively within the test. * New “exploded” database format which allows you to more easily check the example database into a source repository while supporting merging. * Better management of how examples are saved in the database. * Health checks will now raise as errors when they fail. It was too easy to have the warnings be swallowed entirely. + New limitations: * choices and streaming strategies may no longer be used with find(). Neither may data() (this is the change that necessitated a major version bump). + Feature removal: * The ForkingTestCase executor has gone away. It may return in some more working form at a later date. + Performance improvements: * A new model which allows flatmap, composite strategies and stateful testing to perform much better. They should also be more reliable. * Filtering may in some circumstances have improved significantly. This will help especially in cases where you have lots of values with individual filters on them, such as lists(x.filter(...)). * Modest performance improvements to the general test runner by avoiding expensive operations * In general your tests should have got faster. If they’ve instead got significantly slower, I’m interested in hearing about it. + Data distribution: * The data distribution should have changed significantly. This may uncover bugs the previous version missed. It may also miss bugs the previous version could have uncovered. Hypothesis is now producing less strongly correlated data than it used to, but the correlations are extended over more of the structure. + Shrinking: * Shrinking quality should have improved. In particular Hypothesis can now perform simultaneous shrinking of separate examples within a single test (previously it was only able to do this for elements of a single collection). In some cases performance will have improved, in some cases it will have got worse but generally shouldn’t have by much.- Update to 2.0.0 + This release cleans up all of the legacy that accrued in the course of Hypothesis 1.0. These are mostly things that were emitting deprecation warnings in 1.19.0, but there were a few additional changes. In particular: * non-strategy values will no longer be converted to strategies when used in given or find. * FailedHealthCheck is now an error and not a warning. * Handling of non-ascii reprs in user types have been simplified by using raw strings in more places in Python 2. * given no longer allows mixing positional and keyword arguments. * given no longer works with functions with defaults. * given no longer turns provided arguments into defaults - they will not appear in the argspec at all. * the basic() strategy no longer exists. * the n_ary_tree strategy no longer exists. * the average_list_length setting no longer exists. Note: If you’re using using recursive() this will cause you a significant slow down. You should pass explicit average_size parameters to collections in recursive calls. * AATTrule can no longer be applied to the same method twice. * Python 2.6 and 3.3 are no longer officially supported, although in practice they still work fine. + This also includes two non-deprecation changes: * given’s keyword arguments no longer have to be the rightmost arguments and can appear anywhere in the method signature. * The max_shrinks setting would sometimes not have been respected.- Update to 1.19.0 + This release heralds the beginning of a new and terrible age of Hypothesis 2.0. It’s primary purpose is some final deprecations prior to said release. The goal is that if your code emits no warnings under this release then it will probably run unchanged under Hypothesis 2.0 (there are some caveats to this: 2.0 will drop support for some Python versions, and if you’re using internal APIs then as usual that may break without warning). + It does have two new features: * New AATTseed() decorator which allows you to manually seed a test. This may be harmlessly combined with and overrides the derandomize setting. * settings objects may now be used as a decorator to fix those settings to a particular AATTgiven test. + API changes (old usage still works but is deprecated): * Settings has been renamed to settings (lower casing) in order to make the decorator usage more natural. * Functions for the storage directory that were in hypothesis.settings are now in a new hypothesis.configuration module. + Additional deprecations: * the average_list_length setting has been deprecated in favour of being explicit. * the basic() strategy has been deprecated as it is impossible to support it under a Conjecture based model, which will hopefully be implemented at some point in the 2.x series. * the n_ary_tree strategy (which was never actually part of the public API) has been deprecated. * Passing settings or random as keyword arguments to given is deprecated (use the new functionality instead) + Bug fixes: * No longer emit PendingDeprecationWarning for __iter__ and StopIteration in streaming() values. * When running in health check mode with non strict, don’t print quite so many errors for an exception in reify. * When an assumption made in a test or a filter is flaky, tests will now raise Flaky instead of UnsatisfiedAssumption.- Update to 1.18.1 + Two behind the scenes changes: * Hypothesis will no longer write generated code to the file system. This will improve performance on some systems (e.g. if you’re using PythonAnywhere which is running your code from NFS) and prevent some annoying interactions with auto-restarting systems. * Hypothesis will cache the creation of some strategies. This can significantly improve performance for code that uses flatmap or composite and thus has to instantiate strategies a lot.- Update to 1.18.0 + Features: * Tests and find are now explicitly seeded off the global random module. This means that if you nest one inside the other you will now get a health check error. It also means that you can control global randomization by seeding random. * There is a new random_module() strategy which seeds the global random module for you and handles things so that you don’t get a health check warning if you use it inside your tests. * floats() now accepts two new arguments: allow_nan and allow_infinity. These default to the old behaviour, but when set to False will do what the names suggest. + Bug fixes: * Fix a bug where tests that used text() on Python 3.4+ would not actually be deterministic even when explicitly seeded or using the derandomize mode, because generation depended on dictionary iteration order which was affected by hash randomization. * Fix a bug where with complicated strategies the timing of the initial health check could affect the seeding of the subsequent test, which would also render supposedly deterministic tests non-deterministic in some scenarios. * In some circumstances flatmap() could get confused by two structurally similar things it could generate and would produce a flaky test where the first time it produced an error but the second time it produced the other value, which was not an error. The same bug was presumably also possible in composite(). * flatmap() and composite() initial generation should now be moderately faster. This will be particularly noticeable when you have many values drawn from the same strategy in a single run, e.g. constructs like lists(s.flatmap(f)). Shrinking performance may have suffered, but this didn’t actually produce an interestingly worse result in any of the standard scenarios tested.- Update to 1.17.1 * A small bug fix release, which fixes the fact that the ‘note’ function could not be used on tests which used the AATTexample decorator to provide explicit examples.- Update to 1.17.0 + This is actually the same release as 1.16.1, but 1.16.1 has been pulled because it contains the following additional change that was not intended to be in a patch release (it’s perfectly stable, but is a larger change that should have required a minor version bump): * Hypothesis will now perform a series of “health checks” as part of running your tests. These detect and warn about some common error conditions that people often run into which wouldn’t necessarily have caued the test to fail but would cause e.g. degraded performance or confusing results.- Update to 1.16.1 * A small bugfix release that allows bdists for Hypothesis to be built under 2.7 - the compat3.py file which had Python 3 syntax wasn’t intended to be loaded under Python 2, but when building a bdist it was. In particular this would break running setup.py test. * Wed Dec 09 2015 dmuellerAATTsuse.com- update to 1.16.0: * Functions from hypothesis.strategies will no longer raise InvalidArgument on bad arguments * Errors caused by accidentally invoking the legacy API are now much less confusing * hypothesis.extra.django is 1.9 compatible. * When tests are run with max_shrinks=0 this will now still rerun the test on failure * Tue Nov 24 2015 toddrme2178AATTgmail.com- Fix license naming. * Tue Nov 10 2015 tbechtoldAATTsuse.com- Initial packaging (version 1.14.0)
|
|
|