2021-06-13 20:08:24 by Adam Ciarcinski | Files touched by this commit (2) | |
Log message: py-hypothesis: updated to 6.14.0 6.14.0 - 2021-06-09 The explain phase now requires shrinking to be enabled, and will be \ automatically skipped for deadline-exceeded errors. 6.13.14 - 2021-06-04 This patch improves the tuples() strategy type annotations, to preserve the \ element types for up to length-five tuples. As for one_of(), this is the best we can do before a planned extension to PEP \ 646 is released, hopefully in Python 3.11. 6.13.13 - 2021-06-04 This patch teaches the Ghostwriter how to find custom ufuncs from any module \ that defines them, and that yaml.unsafe_load() does not undo yaml.safe_load(). 6.13.12 - 2021-06-03 This patch reduces the amount of internal code excluded from our test suite’s \ code coverage checks. There is no user-visible change. 6.13.11 - 2021-06-02 This patch removes some old internal helper code that previously existed to make \ Python 2 compatibility easier. There is no user-visible change. 6.13.10 - 2021-05-30 This release adjusts some internal code to help make our test suite more reliable. There is no user-visible change. 6.13.9 - 2021-05-30 This patch cleans up some internal code related to filtering strategies. There is no user-visible change. 6.13.8 - 2021-05-28 This patch slightly improves the performance of some internal code for \ generating integers. 6.13.7 - 2021-05-27 This patch fixes a bug in from_regex() that caused from_regex("", \ fullmatch=True) to unintentionally generate non-empty strings. The only strings that completely match an empty regex pattern are empty strings. 6.13.6 - 2021-05-26 This patch fixes a bug that caused integers() to shrink towards negative values \ instead of positive values in some cases. 6.13.5 - 2021-05-24 This patch fixes rare cases where hypothesis write --binary-op could print \ reproducing instructions from the internal search for an identity element. 6.13.4 - 2021-05-24 This patch removes some unnecessary intermediate list-comprehensions, using the \ latest versions of pyupgrade and shed. 6.13.3 - 2021-05-23 This patch adds a .hypothesis property to invalid test functions, bringing them \ inline with valid tests and fixing a bug where pytest-asyncio would swallow the \ real error message and mistakenly raise a version incompatibility error. 6.13.2 - 2021-05-23 Some of Hypothesis’s numpy/pandas strategies use a fill argument to speed up \ generating large arrays, by generating a single fill value and sharing that \ value among many array slots instead of filling every single slot individually. When no fill argument is provided, Hypothesis tries to detect whether it is OK \ to automatically use the elements argument as a fill strategy, so that it can \ still use the faster approach. This patch fixes a bug that would cause that optimization to trigger in some \ cases where it isn’t 100% guaranteed to be OK. If this makes some of your numpy/pandas tests run more slowly, try adding an \ explicit fill argument to the relevant strategies to ensure that Hypothesis \ always uses the faster approach. 6.13.1 - 2021-05-20 This patch strengthens some internal import-time consistency checks for the \ built-in strategies. There is no user-visible change. 6.13.0 - 2021-05-18 This release adds URL fragment generation to the urls() strategy. Thanks to Pax \ (R. Margret) for contributing this patch at the PyCon US Mentored Sprints! 6.12.1 - 2021-05-17 This patch fixes issue 2964, where .map() and .filter() methods were omitted \ from the repr() of just() and sampled_from() strategies, since version 5.43.7. 6.12.0 - 2021-05-06 This release automatically rewrites some simple filters, such as \ integers().filter(lambda x: x > 9) to the more efficient \ integers(min_value=10), based on the AST of the predicate. We continue to recommend using the efficient form directly wherever possible, \ but this should be useful for e.g. pandera “Checks” where you already have a \ simple predicate and translating manually is really annoying. See issue 2701 for \ ideas about floats and simple text strategies. 6.11.0 - 2021-05-06 hypothesis.target() now returns the observation value, allowing it to be \ conveniently used inline in expressions such as assert target(abs(a - b)) < \ 0.1. |
2021-05-04 10:10:53 by Thomas Klausner | Files touched by this commit (2) | |
Log message: py-hypothesis: update to 6.10.1. 6.10.1 - 2021-04-26 This patch fixes a deprecation warning if you’re using recent versions of importlib-metadata (issue #2934), which we use to load third-party plugins such as Pydantic’s integration. On older versions of importlib-metadata, there is no change and you don’t need to upgrade. |
2021-04-20 18:43:04 by Thomas Klausner | Files touched by this commit (2) | |
Log message: py-hypothesis: update to 6.10.0. 6.10.0 - 2021-04-17 This release teaches the Ghostwriter to read parameter types from Sphinx, Google, or Numpy-style structured docstrings, and improves some related heuristics about how to test scientific and numerical programs. 6.9.2 - 2021-04-15 This release improves the Ghostwriter’s handling of exceptions, by reading :raises ...: entries in function docstrings and ensuring that we don’t suppresss the error raised by test assertions. 6.9.1 - 2021-04-12 This patch updates our autoformatting tools, improving our code style without any API changes. 6.9.0 - 2021-04-11 This release teaches from_type() how to see through typing.Annotated. Thanks to Vytautas Strimaitis for reporting and fixing issue #2919! 6.8.12 - 2021-04-11 If rich is installed, the hypothesis write command will use it to syntax-highlight the Ghostwritten code. 6.8.11 - 2021-04-11 This patch improves an error message from from_type() when builds() would be more suitable (issue #2930). 6.8.10 - 2021-04-11 This patch updates the type annotations for arrays() to reflect that shape: SearchStrategy[int] is supported. 6.8.9 - 2021-04-07 This patch fixes from_type() with abstract types which have either required but non-type-annotated arguments to __init__, or where from_type() can handle some concrete subclasses but not others. 6.8.8 - 2021-04-07 This patch teaches hypothesis write to check for possible roundtrips in several more cases, such as by looking for an inverse in the module which defines the function to test. 6.8.7 - 2021-04-07 This patch adds a more helpful error message if you try to call sampled_from() on an Enum which has no members, but does have dataclass()-style annotations (issue #2923). |
2021-04-07 08:23:52 by Adam Ciarcinski | Files touched by this commit (2) | |
Log message: py-hypothesis: updated to 6.8.6 6.8.6 - 2021-04-06 The fixed_dictionaries() strategy now preserves dict iteration order instead of \ sorting the keys. This also affects the pretty-printing of keyword arguments to \ @given(). 6.8.5 - 2021-04-05 This patch teaches hypothesis write to default to ghostwriting tests with \ --style=pytest only if pytest is installed, or --style=unittest otherwise. 6.8.4 - 2021-04-01 This patch adds type annotations for the settings decorator, to avoid an error \ when running mypy in strict mode. 6.8.3 - 2021-03-28 This patch improves the Ghostwriter’s handling of strategies to generate \ various fiddly types including frozensets, keysviews, valuesviews, regex matches \ and patterns, and so on. 6.8.2 - 2021-03-27 This patch fixes some internal typos. There is no user-visible change. |
2021-03-17 14:13:32 by Thomas Klausner | Files touched by this commit (3) | |
Log message: py-hypothesis: update to 6.8.1. 6.8.1 - 2021-03-14 This patch lays more groundwork for filter rewriting (issue #2701). There is no user-visible change… yet. 6.8.0 - 2021-03-11 This release registers the remaining builtin types, and teaches from_type() to try resolving ForwardRef and Type references to built-in types. 6.7.0 - 2021-03-10 This release teaches RuleBasedStateMachine to avoid checking invariant()s until all initialize() rules have been run. You can enable checking of specific invariants for incompletely initialized machines by using @invariant(check_during_init=True) (issue #2868). In previous versions, it was possible if awkward to implement this behaviour using precondition() and an auxiliary variable. 6.6.1 - 2021-03-09 This patch improves the error message when from_type() fails to resolve a forward-reference inside a typing.Type such as Type["int"] (issue #2565). 6.6.0 - 2021-03-07 This release makes it an explicit error to apply invariant() to a rule() or initialize() rule in stateful testing. Such a combination had unclear semantics, especially in combination with precondition(), and was never meant to be allowed (issue #2681). 6.5.0 - 2021-03-07 This release adds the explain phase, in which Hypothesis attempts to explain why your test failed by pointing to suspicious lines of code (i.e. those which were always, and only, run on failing inputs). We plan to include “generalising” failing examples in this phase in a future release (issue #2192). 6.4.3 - 2021-03-04 This patch fixes issue #2794, where nesting deferred() strategies within recursive() strategies could trigger an internal assertion. While it was always possible to get the same results from a more sensible strategy, the convoluted form now works too. 6.4.2 - 2021-03-04 This patch fixes several problems with mypy when –no-implicit-reexport was activated in user projects. Thanks to Nikita Sobolev for fixing issue #2884! 6.4.1 - 2021-03-04 This patch fixes an exception that occurs when using type unions of the typing_extensions Literal backport on Python 3.6. Thanks to Ben Anhalt for identifying and fixing this bug. 6.4.0 - 2021-03-02 This release fixes stateful testing methods with multiple precondition() decorators. Previously, only the outer-most precondition was checked (issue #2681). 6.3.4 - 2021-02-28 This patch refactors some internals of RuleBasedStateMachine. There is no change to the public API or behaviour. 6.3.3 - 2021-02-26 This patch moves some internal code, so that future work can avoid creating import cycles. There is no user-visible change. 6.3.2 - 2021-02-25 This patch enables register_type_strategy() for subclasses of typing.TypedDict. Previously, from_type() would ignore the registered strategy (issue #2872). Thanks to Ilya Lebedev for identifying and fixing this bug! 6.3.1 - 2021-02-24 This release lays the groundwork for automatic rewriting of simple filters, for example converting integers().filter(lambda x: x > 9) to integers(min_value=10). Note that this is not supported yet, and we will continue to recommend writing the efficient form directly wherever possible - predicate rewriting is provided mainly for the benefit of downstream libraries which would otherwise have to implement it for themselves (e.g. pandera and icontract-hypothesis). See issue #2701 for details. 6.3.0 - 2021-02-20 The Hypothesis pytest plugin now requires pytest version 4.6 or later. If the plugin detects an earlier version of pytest, it will automatically deactivate itself. (4.6.x is the earliest pytest branch that still accepts community bugfixes.) Hypothesis-based tests should continue to work in earlier versions of pytest, but enhanced integrations provided by the plugin (such as --hypothesis-show-statistics and other command-line flags) will no longer be available in obsolete pytest versions. |
2021-02-18 11:31:27 by Thomas Klausner | Files touched by this commit (2) | |
Log message: py-hypothesis: update to 6.2.0. 6.2.0 - 2021-02-12 If you use pytest-html, Hypothesis now includes the summary statistics for each test in the HTML report, whether or not the --hypothesis-show-statistics argument was passed to show them in the command-line output. |
2021-02-04 12:15:16 by Thomas Klausner | Files touched by this commit (2) | |
Log message: py-hypothesis: update to 6.1.1. 6.1.1 - 2021-01-31 This patch updates our automatic code formatting to use shed, which includes \ autoflake, black, isort, and pyupgrade (issue #2780). 6.1.0 - 2021-01-29 This release teaches Hypothesis to distinguish between errors based on the \ __cause__ or __context__ of otherwise identical exceptions, which is \ particularly useful when internal errors can be wrapped by a library-specific or \ semantically appropriate exception such as: try: do_the_thing(foo, timeout=10) except Exception as err: raise FooError("Failed to do the thing") from err Earlier versions of Hypothesis only see the FooError, while we can now \ distinguish a FooError raised because of e.g. an internal assertion from one \ raised because of a TimeoutExceeded exception. 6.0.4 - 2021-01-27 This release prevents a race condition inside recursive() strategies. The race \ condition occurs when the same recursive() strategy is shared among tests that \ are running in multiple threads (issue #2717). |
2021-01-25 11:08:58 by Thomas Klausner | Files touched by this commit (2) | |
Log message: py-hypothesis: update to 6.0.3. 6.0.3 - 2021-01-23 This patch improves the type annotations for one_of(), by adding overloads to handle up to five distinct arguments as typing.Union before falling back to typing.Any, as well as annotating the | (__or__) operator for strategies (issue #2765). 6.0.2 - 2021-01-14 This release makes some small improvements to how filtered strategies work. It should improve the performance of shrinking filtered strategies, and may under some (probably rare) circumstances improve the diversity of generated examples. |
2021-01-13 12:50:46 by Thomas Klausner | Files touched by this commit (2) | |
Log message: py-hypothesis: update to 6.0.1. 6.0.1 - 2021-01-13 This patch fixes an interaction where our test statistics handling made Pytest’s --junit-xml output fail to validate against the strict xunit2 schema (issue #1975). 6.0.0 - 2021-01-08 Welcome to the next major version of Hypothesis! There are no new features here, as we release those in minor versions. Instead, 6.0 is a chance for us to remove deprecated features (many already converted into no-ops), and turn a variety of warnings into errors. If you were running on the last version of Hypothesis 5.x without any Hypothesis deprecation warnings, this will be a very boring upgrade. In fact, nothing will change for you at all. Changes Many functions now use PEP 3102 keyword-only arguments where passing positional arguments was deprecated since 5.5. hypothesis.extra.django.from_model() no longer accepts model as a keyword argument, where it could conflict with fields named “model”. randoms() now defaults to use_true_random=False. complex_numbers() no longer accepts min_magnitude=None; either use min_magnitude=0 or just omit the argument. hypothesis.provisional.ip4_addr_strings and ip6_addr_strings are removed in favor of ip_addresses(v=...).map(str). register_type_strategy() no longer accepts generic types with type arguments, which were always pretty badly broken. Using function-scoped pytest fixtures is now a health-check error, instead of a warning. Tip The hypothesis codemod command can automatically refactor your code, particularly to convert positional to keyword arguments where those are now required. Hypothesis 5.x 5.49.0 - 2021-01-07 This release adds the function_scoped_fixture health check value, which can be used to suppress the existing warning that appears when @given is applied to a test that uses pytest function-scoped fixtures. (This warning exists because function-scoped fixtures only run once per function, not once per example, which is usually unexpected and can cause subtle problems.) When this warning becomes a health check error in a future release, suppressing it via Python warning settings will no longer be possible. In the rare case that once-per-function behaviour is intended, it will still be possible to use function_scoped_fixture to opt out of the health check error for specific tests. 5.48.0 - 2021-01-06 This release adds hypothesis.currently_in_test_context(), which can be used to check whether the calling code is currently running inside an @given or stateful test. This is most useful for third-party integrations and assertion helpers which may wish to use assume() or target(), without also requiring that the helper only be used from property-based tests (issue #2581). 5.47.0 - 2021-01-05 This release upgrades the import logic for ghostwritten tests, handling many cases where imports would previously be missing or from unexpected locations. |
2021-01-04 12:55:03 by Thomas Klausner | Files touched by this commit (3) | |
Log message: py-hypothesis: update to 5.46.0. 5.46.0 - 2021-01-04 This release upgrades from_type(), to infer strategies for type-annotated arguments even if they have defaults when it otherwise falls back to builds() (issue #2708). 5.45.0 - 2021-01-04 This release adds the hypothesis[codemods] extra, which you can use to check for and automatically fix issues such as use of deprecated Hypothesis APIs (issue #2705). 5.44.0 - 2021-01-03 This patch fixes from_type() with the typing_extensions Literal backport on Python 3.6. 5.43.9 - 2021-01-02 This patch fixes issue #2722, where certain orderings of register_type_strategy(), ForwardRef, and from_type() could trigger an internal error. 5.43.8 - 2021-01-02 This patch makes some strategies for collections with a uniqueness constraint much more efficient, including dictionaries(keys=sampled_from(...), values=..) and lists(tuples(sampled_from(...), ...), unique_by=lambda x: x[0]). (related to issue #2036) 5.43.7 - 2021-01-02 This patch extends our faster special case for sampled_from() elements in unique lists() to account for chains of .map(...) and .filter(...) calls (issue #2036). 5.43.6 - 2021-01-02 This patch improves the type annotations on assume() and @reproduce_failure(). 5.43.5 - 2021-01-01 This patch updates our copyright headers to include 2021. Happy new year! 5.43.4 - 2020-12-24 This change fixes a documentation error in the database setting. The previous documentation suggested that callers could specify a database path string, or the special string ":memory:", but this setting has never actually allowed string arguments. Permitted values are None, and instances of ExampleDatabase. 5.43.3 - 2020-12-11 This patch fixes issue #2696, an internal error triggered when the @example decorator was used and the verbosity setting was quiet. 5.43.2 - 2020-12-10 This patch improves the error message from the data_frames() strategy when both the rows and columns arguments are given, but there is a missing entry in rows and the corresponding column has no fill value (issue #2678). 5.43.1 - 2020-12-10 This patch improves the error message if builds() is passed an Enum which cannot be called without arguments, to suggest using sampled_from() (issue #2693). 5.43.0 - 2020-12-09 This release adds new timezones() and timezone_keys() strategies (issue #2630) based on the new zoneinfo module in Python 3.9. pip install hypothesis[zoneinfo] will ensure that you have the appropriate backports installed if you need them. |