------------------------------------------------------------------- Tue Feb 27 17:36:35 UTC 2018 - aplanas@suse.com - Recommends only for SUSE ------------------------------------------------------------------- Fri Feb 23 20:19:52 UTC 2018 - tbechtold@suse.com update 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 15:46:40 UTC 2018 - tchvatal@suse.com - Condition py2 only dependencies so we do not pull them on py3 only scenario ------------------------------------------------------------------- Wed Jan 17 03:55:40 UTC 2018 - arun@gmx.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 6 17:11:29 UTC 2018 - arun@gmx.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 6 07:24:23 UTC 2018 - arun@gmx.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 4 17:06:43 UTC 2018 - arun@gmx.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 3 22:43:51 UTC 2018 - arun@gmx.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 3 10:03:42 UTC 2018 - tchvatal@suse.com - Disable the tests as it is too flaky to be reliable ------------------------------------------------------------------- Sun Dec 31 05:55:59 UTC 2017 - arun@gmx.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 18:22:00 UTC 2017 - arun@gmx.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 @reproduce_failure, designed to make it easy to use Hypothesis’s binary format for examples to reproduce a problem locally without having to share your example database between machines. This also changes when seeds are printed: + They will no longer be printed for normal falsifying examples, as there are now adequate ways of reproducing those for all cases, so it just contributes noise. + They will once again be printed when reusing examples from the database, as health check failures should now be more reliable in this scenario so it will almost always work in this case. - 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 01:26:12 UTC 2017 - arun@gmx.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 08:55:52 UTC 2017 - ecsos@opensuse.org - Add patch python-hypothesis-build.patch to fix Factory build error ------------------------------------------------------------------- Thu Dec 14 15:00:24 UTC 2017 - tchvatal@suse.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 00:54:26 UTC 2017 - arun@gmx.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 9 17:39:47 UTC 2017 - arun@gmx.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 7 16:46:53 UTC 2017 - arun@gmx.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 6 02:52:35 UTC 2017 - arun@gmx.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 @seed. + The derandomize will behave the same way as @seed. + 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 19:04:24 UTC 2017 - arun@gmx.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 21:26:33 UTC 2017 - arun@gmx.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 19:42:32 UTC 2017 - arun@gmx.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 05:19:56 UTC 2017 - arun@gmx.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 01:32:07 UTC 2017 - arun@gmx.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 @given tests, so this is no longer an error and suppressing it doesn’t do anything. + Passing non-HealthCheck values in suppress_health_check. This was previously allowed but never did anything useful. ------------------------------------------------------------------- Sat Nov 11 17:16:21 UTC 2017 - arun@gmx.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 7 23:22:24 UTC 2017 - arun@gmx.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 4 02:01:40 UTC 2017 - arun@gmx.de - update to version 3.34.1: * This patch updates the documentation to suggest builds(callable) instead of just(callable()). ------------------------------------------------------------------- Fri Nov 3 05:13:56 UTC 2017 - arun@gmx.de - update to version 3.34.0: * Hypothesis now emits deprecation warnings if you apply @given more than once to a target. Applying @given repeatedly wraps the target multiple times. Each wrapper will search the space of of possible parameters separately. This is equivalent but will be much more inefficient than doing it with a single call to @given. For example, instead of @given(booleans()) @given(integers()), you could write @given(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 01:47:00 UTC 2017 - arun@gmx.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 22:19:10 UTC 2017 - arun@gmx.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 9 04:06:23 UTC 2017 - arun@gmx.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 6 19:43:51 UTC 2017 - arun@gmx.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 5 12:11:08 UTC 2017 - dimstar@opensuse.org - Add python-attrs and python-coverage requires, matching the info of setup.py. ------------------------------------------------------------------- Tue Oct 3 01:14:16 UTC 2017 - arun@gmx.de - update to version 3.31.2: * long list of updates, see https://hypothesis.readthedocs.io/en/latest/changes.html ------------------------------------------------------------------- Mon Jul 10 11:52:42 UTC 2017 - jengelh@inai.de - Ensure neutrality of description. ------------------------------------------------------------------- Thu Jun 29 17:51:17 UTC 2017 - aloisio@gmx.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 14:06:42 UTC 2017 - jmatejek@suse.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 16:35:11 UTC 2016 - toddrme2178@gmail.com - Fix download URL. ------------------------------------------------------------------- Mon May 9 17:57:36 UTC 2016 - toddrme2178@gmail.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. * @rule 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 @seed() 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 @given 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 @example 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 9 10:06:43 UTC 2015 - dmueller@suse.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 12:48:51 UTC 2015 - toddrme2178@gmail.com - Fix license naming. ------------------------------------------------------------------- Tue Nov 10 07:38:36 UTC 2015 - tbechtold@suse.com - Initial packaging (version 1.14.0)