Accepting request 826112 from home:bnavigator:branches:devel:languages:python

- Update to version 5.24.2
- add comment about source archive
- use only github source repository (python subdir) in obscpio
- Reenable django and pandas tests
- With ringdisabled, do not run test flavor at all
- Require and use pytest-xdist in tests
  * Reenables the one skipped test
  * Trims total build time by a large factor despite now running
    pandas and django tests too!
- Drop failing-test_array_values_are_unique_high_collision.patch
  * Fix the test instead gh#HypothesisWorks/hypothesis#2447    
- Sync requirements versions to setup.py 
  * newer versions probably came from wrong interpretation of
    upstream's version pinning

OBS-URL: https://build.opensuse.org/request/show/826112
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-hypothesis?expand=0&rev=134
This commit is contained in:
Matej Cepl 2020-08-14 21:42:04 +00:00 committed by Git OBS Bridge
parent 57405b4e11
commit 55a827aaae
7 changed files with 234 additions and 71 deletions

13
_service Normal file
View File

@ -0,0 +1,13 @@
<services>
<!-- python portion of github sources -->
<service name="obs_scm" mode="disabled">
<param name="url">https://github.com/HypothesisWorks/hypothesis.git</param>
<param name="scm">git</param>
<param name="revision">hypothesis-python-5.24.2</param>
<param name="versionformat">@PARENT_TAG@</param>
<param name="versionrewrite-pattern">hypothesispython(.*)</param>
<param name="subdir">hypothesis-python</param>
<param name="filename">hypothesis-python</param>
</service>
<service name="set_version" mode="disabled" />
</services>

View File

@ -1,26 +0,0 @@
--- a/tests/numpy/test_gen_data.py
+++ b/tests/numpy/test_gen_data.py
@@ -13,6 +13,7 @@
#
# END HEADER
+import struct
import sys
from functools import reduce
from itertools import zip_longest
@@ -28,6 +29,7 @@ from hypothesis.strategies._internal imp
from tests.common.debug import find_any, minimal
from tests.common.utils import fails_with, flaky
+_IS_32BIT = 8 * struct.calcsize("P") == 32
ANY_SHAPE = nps.array_shapes(min_dims=0, max_dims=32, min_side=0, max_side=32)
ANY_NONZERO_SHAPE = nps.array_shapes(min_dims=0, max_dims=32, min_side=1, max_side=32)
STANDARD_TYPES = list(
@@ -361,6 +363,7 @@ def test_cannot_generate_unique_array_of
strat.example()
+@pytest.mark.skipif(_IS_32BIT, reason="Test fails on 32bit architecture.")
@given(
nps.arrays(
elements=st.just(0.0),

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5a6108726c1146873841bb761f1d85bff82565a4ec3b04d7fff1dea55f3118ec
size 9022213

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:6b5de4dd128f7d901deea855fc7e8fd9062d1cf47e8a371d57a289a18c9e9df9
size 2410508

View File

@ -0,0 +1,5 @@
name: hypothesis-python
version: 5.24.2
mtime: 1597261342
commit: 06c4e050af7a5460682afabd2f580f45c93b56ef

View File

@ -1,3 +1,165 @@
-------------------------------------------------------------------
Wed Aug 12 20:51:26 UTC 2020 - Benjamin Greiner <code@bnavigator.de>
- Update to version 5.24.2
* This release improves shrink quality by allowing Hypothesis to
automatically learn new shrink passes for difficult to shrink
tests.
* The automatic learning is not currently accessible in user code
(it still needs significant work on robustness and performance
before it is ready for that), but this release includes learned
passes that should improve shrinking quality for tests which
use any of the text(), hypothesis.strategies.floats,
hypothesis.strategies.datetimes, hypothesis.strategies.emails,
and complex_numbers() strategies.
- Update to version 5.24.1
* This patch updates some docstrings, without changing runtime
behaviour.
- add comment about source archive
-------------------------------------------------------------------
Tue Aug 11 12:28:11 UTC 2020 - Benjamin Greiner <code@bnavigator.de>
- Update to version 5.24.0
* The functions() strategy has a new argument pure=True,
which ensures that the same return value is generated
for identical calls to the generated function (issue
#2538).
* Thanks to Zac Hatfield-Dodds and Nikita Sobolev for this
feature!
- Update to version 5.23.12
* This release removes a number of Hypothesis's internal
"shrink passes" - transformations it makes to a
generated test case during shrinking - which appeared to
be redundant with other transformations.
* It is unlikely that you will see much impact from this.
If you do, it will likely show up as a change in
shrinking performance (probably slower, maybe faster),
or possibly in worse shrunk results. If you encounter
the latter, please let us know.
- remove rpmlintrc again
- use only github source repository (python subdir) in obscpio
-------------------------------------------------------------------
Sat Aug 8 08:41:01 UTC 2020 - Benjamin Greiner <code@bnavigator.de>
- Use PyPI source for package and test it with tests from the
Github repository -- source hypothesis-python-tests-5.23.11
as direct CPIO archive hypothesis-python-tests-5.23.11.obscpio
created by (locally run) obs_scm service
- Reenable django and pandas tests
- With ringdisabled, do not run test flavor at all
- Require and use pytest-xdist in tests
* Reenables the one skipped test
* Trims total build time by a large factor despite now running
pandas and django tests too!
- Drop failing-test_array_values_are_unique_high_collision.patch
* Fix the test instead gh#HypothesisWorks/hypothesis#2447
- python-hypothesis-rpmlintrc -- filter empty types file
- Sync requirements versions to setup.py
* newer versions probably came from wrong interpretation of
upstream's version pinning
- Update to version 5.23.11
* This release fixes a bug in some internal Hypothesis support
code. It has no user visible impact.
- Update to version 5.23.10
* This release improves the quality of shrunk test cases in some
special cases. Specifically, it should get shrinking unstuck in
some scenarios which require simultaneously changing two parts
of the generated test case.
- Update to version 5.23.9
* This release improves the performance of some internal support
code. It has no user visible impact, as that code is not
currently run during normal Hypothesis operation.
- Update to version 5.23.8
* This release adds a heuristic to detect when shrinking has
finished despite the fact that there are many more possible
transformations to try. This will be particularly useful for
tests where the minimum failing test case is very large despite
there being many smaller test cases possible, where it is
likely to speed up shrinking dramatically.
* In some cases it is likely that this will result in worse
shrunk test cases. In those cases rerunning the test will
result in further shrinking.
- Update to version 5.23.7
* This release makes some performance improvements to shrinking.
They should only be noticeable for tests that are currently
particularly slow to shrink.
- Update to version 5.23.6
* This patch adds some more internal functions to support a new
feature we're working on, like version 5.18.3. There is still
no user-visible changes yet.
- Update to version 5.23.5
* This release makes some changes to internal support code that
is not currently used in production Hypothesis. It has no user
visible effect at present.
- Update to version 5.23.4
* This release improves shrinking quality in some special cases.
- Update to version 5.23.3
* This release fixes issue #2507, where lazy evaluation meant
that the values drawn from a sampled_from() strategy could
depend on mutations of the sampled sequence that happened after
the strategy was constructed.
- Update to version 5.23.2
* This patch fixes issue #2462, a bug in our handling of
unittest.TestCase.subTest(). Thanks to Israel Fruchter for
fixing this at the EuroPython sprints!
- Update to version 5.23.1
* This release improves the behaviour of the characters()
strategy when shrinking, by changing which characters are
considered smallest to prefer more "normal" ascii
characters where available.
- Update to version 5.23.0
* The default print_blob setting is now smarter. It defaults to
True in CI and False for local development.
* Thanks to Hugo van Kemenade for implementing this feature at
the EuroPython sprints!
- Update to version 5.22.0
* The slices() strategy can now generate slices for empty
sequences, slices with negative start and stop indices (from
the end of the sequence), and step=None in place of step=1.
* Thanks to Sangarshanan for implementing this feature at the
EuroPython sprints!
- Update to version 5.21.0
* This release ensures that tests which raise RecursionError are
not reported as flaky simply because we run them from different
initial stack depths (issue #2494).
- Update to version 5.20.4
* This release improves the performance of the sample method on
objects obtained from randoms() when use_true_random=False.
This should mostly only be noticeable when the sample size is a
large fraction of the population size, but may also help avoid
health check failures in some other cases.
- Update to version 5.20.3
* This release makes some internal changes for testing purposes
and should have no user visible effect.
- Update to version 5.20.2
* This release fixes a small caching bug in Hypothesis internals
that may under some circumstances have resulted in a less
diverse set of test cases being generated than was intended.
* Fixing this problem revealed some performance problems that
could occur during targeted property based testing, so this
release also fixes those. Targeted property-based testing
should now be significantly faster in some cases, but this may
be at the cost of reduced effectiveness.
- Update to version 5.20.1
* This patch updates our formatting to use isort 5. There is no
user-visible change.
- Update to version 5.20.0
* The basic_indices() strategy can now generate bare indexers in
place of length-one tuples. Thanks to Andrea for this patch!
- Update to version 5.19.3
* This patch removes an internal use of distutils in order to
avoid this setuptools warning for some users.
- Update to version 5.19.2
* This patch contains a small internal refactoring with no
user-visible impact.
Thanks to Andrea for writing this at the SciPy 2020 Sprints!
- Update to version 5.19.1
* This release slightly improves shrinking behaviour. This should
mainly only impact stateful tests, but may have some minor
positive impact on shrinking collections (lists, sets, etc).
-------------------------------------------------------------------
Thu Jul 2 16:44:48 UTC 2020 - Antonio Larrosa <alarrosa@suse.com>

View File

@ -17,54 +17,65 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%define oldpython python
%define skip_python2 1
%bcond_with ringdisabled
%global flavor @BUILD_FLAVOR@%{nil}
%if "%{flavor}" == "test"
%define psuffix -test
%bcond_without test
# Magic for OBS Staging. Only build the flavors required by
# other packages in the ring.
%if %{with ringdisabled}
ExclusiveArch: do_not_build
%endif
%else
%define psuffix %{nil}
%bcond_with test
%endif
%define skip_python2 1
Name: python-hypothesis%{psuffix}
Version: 5.19.0
Version: 5.24.2
Release: 0
Summary: A library for property based testing
License: MPL-2.0
URL: https://github.com/HypothesisWorks/hypothesis-python
Source: https://github.com/HypothesisWorks/hypothesis/archive/hypothesis-python-%{version}.tar.gz
# PATCH-FIX-UPSTREAM failing-test_array_values_are_unique_high_collision.patch gh#HypothesisWorks/hypothesis#2447 mcepl@suse.com
# Skip failing test on i586.
Patch0: failing-test_array_values_are_unique_high_collision.patch
BuildRequires: %{python_module setuptools >= 36}
URL: https://github.com/HypothesisWorks/hypothesis
# Source is the `hypothesis-python` subdir of the Github repository.
# Edit the `_service` file and run `osc service runall` for updates.
Source: hypothesis-python-%{version}
%if 0%{?suse_version} >= 1500
BuildRequires: %{pythons >= 3.5.2}
%else
BuildRequires: %{python_module base >= 3.5.2}
%endif
BuildRequires: %{python_module setuptools >= 36.2}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
Requires: python-attrs >= 19.3.0
Requires: python-sortedcontainers >= 2.2.2
Recommends: python-Django >= 3.0.7
Recommends: python-dpcontracts >= 0.6.0
Recommends: python-lark-parser >= 0.8.9
Requires: python-attrs >= 19.2.0
Requires: python-sortedcontainers >= 2.1.0
Recommends: python-Django >= 2.2
Recommends: python-dpcontracts >= 0.4
Recommends: python-lark-parser >= 0.6.5
Recommends: python-numpy >= 1.9.0
Recommends: python-pandas >= 0.19
Recommends: python-pytest >= 5.4.3
Recommends: python-python-dateutil >= 2.8.1
Recommends: python-pytest >= 4.3
Recommends: python-python-dateutil >= 1.4
Recommends: python-pytz >= 2014.1
BuildArch: noarch
%if %{with test}
# SECTION test requirements
BuildRequires: %{python_module Django >= 3.0.7}
BuildRequires: %{python_module attrs >= 19.3.0}
BuildRequires: %{python_module Django >= 2.2}
BuildRequires: %{python_module attrs >= 19.2.0}
BuildRequires: %{python_module black}
BuildRequires: %{python_module dpcontracts >= 0.6.0}
BuildRequires: %{python_module flaky}
BuildRequires: %{python_module hypothesis >= %{version}}
BuildRequires: %{python_module lark-parser >= 0.8.9}
BuildRequires: %{python_module mock}
BuildRequires: %{python_module hypothesis = %{version}}
BuildRequires: %{python_module lark-parser >= 0.6.5}
BuildRequires: %{python_module numpy >= 1.9.0}
BuildRequires: %{python_module pexpect >= 4.8.0}
BuildRequires: %{python_module pytest >= 5.4.3}
BuildRequires: %{python_module python-dateutil >= 2.8.1}
BuildRequires: %{python_module sortedcontainers >= 2.2.2}
BuildRequires: %{python_module pandas >= 0.19}
BuildRequires: %{python_module pexpect}
BuildRequires: %{python_module pytest >= 4.3}
BuildRequires: %{python_module pytest-xdist}
BuildRequires: %{python_module python-dateutil >= 1.4}
BuildRequires: %{python_module sortedcontainers >= 2.1.0}
BuildRequires: %{python_module typing_extensions}
%endif
# /SECTION
@ -82,38 +93,36 @@ PyPy3 until they support a 3.3 compatible version of the language). It does *not
work on Jython or on Python 3.0 through 3.2.
%prep
%setup -q -n hypothesis-hypothesis-python-%{version}/hypothesis-python
%autopatch -p1
# the django fails to initialize
rm -r tests/django
# do not pull in pandas as a dep in ring1; it slows down things too much
rm -r tests/pandas
%setup -q -n %{_sourcedir}/hypothesis-python-%{version} -T -D
# gh#HypothesisWorks/hypothesis#2447: make sure arr==0.0 is an array on 32-bit
sed -i 's/assert (arr == 0.0)/assert np.asarray(arr == 0.0)/' tests/numpy/test_gen_data.py
%build
%if !%{with test}
%python_build
%endif
%install
%if !%{with test}
%python_install
%{python_expand \
$python -m compileall -d %{$python_sitelib} %{buildroot}%{$python_sitelib}/hypothesis/
$python -O -m compileall -d %{$python_sitelib} %{buildroot}%{$python_sitelib}/hypothesis/
%fdupes %{buildroot}%{$python_sitelib}
}
%python_expand %fdupes %{buildroot}%{$python_sitelib}
%endif
%check
%if %{with test}
# test_prints_statistics_given_option_under_xdist - wrong xdist opts
%pytest tests -k "not test_prints_statistics_given_option_under_xdist"
# theses tests try to write into global python_sitelib
# https://github.com/HypothesisWorks/hypothesis/issues/2546
skiptests="test_updating_the_file_include_new_shrinkers"
skiptests+=" or test_can_learn_to_normalize_the_unnormalized"
%pytest tests -n auto -p pytester --runpytest=subprocess -k "not ($skiptests)"
%endif
%if !%{with test}
%files %{python_files}
%license ../LICENSE.txt
%doc ../CITATION README.rst docs/changes.rst
%{python_sitelib}/hypothesis*
%license LICENSE.txt
%doc README.rst
%{python_sitelib}/hypothesis
%{python_sitelib}/hypothesis-%{version}-py*.egg-info
%endif
%changelog