Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 916339 - dev-python/pytest-asyncio-0.21.1 fails tests
Summary: dev-python/pytest-asyncio-0.21.1 fails tests
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Python Gentoo Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-10-27 14:42 UTC by Andrey Grozin
Modified: 2023-11-10 14:38 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Andrey Grozin gentoo-dev 2023-10-27 14:42:16 UTC
========================================================= test session starts =========================================================
platform linux -- Python 3.10.13, pytest-7.4.3, pluggy-1.3.0 -- /var/tmp/portage/dev-python/pytest-asyncio-0.21.1/work/pytest-asyncio-0.21.1-python3_10/install/usr/bin/python3.10
cachedir: .pytest_cache
hypothesis profile 'default' -> database=DirectoryBasedExampleDatabase(PosixPath('/var/tmp/portage/dev-python/pytest-asyncio-0.21.1/work/pytest-asyncio-0.21.1/.hypothesis/examples'))
rootdir: /var/tmp/portage/dev-python/pytest-asyncio-0.21.1/work/pytest-asyncio-0.21.1
configfile: setup.cfg
testpaths: tests
asyncio: mode=auto
collecting ... collected 76 items / 3 deselected / 73 selected

tests/test_asyncio_fixture.py::test_bare_fixture PASSED                                                                        [ 1/73]
tests/test_asyncio_fixture.py::test_fixture_with_name PASSED                                                                   [ 2/73]
tests/test_asyncio_fixture.py::test_fixture_with_params[2] PASSED                                                              [ 3/73]
tests/test_asyncio_fixture.py::test_fixture_with_params[4] PASSED                                                              [ 4/73]
tests/test_asyncio_fixture.py::test_sync_function_uses_async_fixture[auto] PASSED                                              [ 5/73]
tests/test_asyncio_fixture.py::test_sync_function_uses_async_fixture[strict] PASSED                                            [ 6/73]
tests/test_dependent_fixtures.py::test_dependent_fixture PASSED                                                                [ 7/73]
tests/test_dependent_fixtures.py::test_factory_involving_factories PASSED                                                      [ 8/73]
tests/test_event_loop_fixture.py::test_event_loop_fixture_respects_event_loop_policy PASSED                                    [ 9/73]
tests/test_event_loop_fixture_finalizer.py::test_event_loop_fixture_finalizer_returns_fresh_loop_after_test PASSED             [10/73]
tests/test_event_loop_fixture_finalizer.py::test_event_loop_fixture_finalizer_handles_loop_set_to_none_sync PASSED             [11/73]
tests/test_event_loop_fixture_finalizer.py::test_event_loop_fixture_finalizer_handles_loop_set_to_none_async_without_fixture PASSED [12/73]                                                                                                                                   
tests/test_event_loop_fixture_finalizer.py::test_event_loop_fixture_finalizer_handles_loop_set_to_none_async_with_fixture PASSED [13/73]                                                                                                                                      
tests/test_flaky_integration.py::test_auto_mode_cmdline PASSED                                                                 [14/73]
tests/test_simple.py::test_event_loop_fixture PASSED                                                                           [15/73]
tests/test_simple.py::test_asyncio_marker PASSED                                                                               [16/73]
tests/test_simple.py::test_asyncio_marker_compatibility_with_xfail PASSED                                                      [17/73]
tests/test_simple.py::test_asyncio_auto_mode_compatibility_with_xfail PASSED                                                   [18/73]
tests/test_simple.py::test_asyncio_marker_with_default_param PASSED                                                            [19/73]
tests/test_simple.py::test_unused_port_fixture PASSED                                                                          [20/73]
tests/test_simple.py::test_unused_udp_port_fixture PASSED                                                                      [21/73]
tests/test_simple.py::test_unused_port_factory_fixture PASSED                                                                  [22/73]
tests/test_simple.py::test_unused_udp_port_factory_fixture PASSED                                                              [23/73]
tests/test_simple.py::test_unused_port_factory_duplicate PASSED                                                                [24/73]
tests/test_simple.py::test_unused_udp_port_factory_duplicate PASSED                                                            [25/73]
tests/test_simple.py::TestMarkerInClassBasedTests::test_asyncio_marker_with_explicit_loop_fixture PASSED                       [26/73]
tests/test_simple.py::TestMarkerInClassBasedTests::test_asyncio_marker_with_implicit_loop_fixture PASSED                       [27/73]
tests/test_simple.py::TestEventLoopStartedBeforeFixtures::test_no_event_loop PASSED                                            [28/73]
tests/test_simple.py::TestEventLoopStartedBeforeFixtures::test_event_loop_after_fixture PASSED                                 [29/73]
tests/test_simple.py::TestEventLoopStartedBeforeFixtures::test_event_loop_before_fixture PASSED                                [30/73]
tests/test_simple.py::test_asyncio_marker_compatibility_with_skip PASSED                                                       [31/73]
tests/test_simple.py::test_asyncio_auto_mode_compatibility_with_skip PASSED                                                    [32/73]
tests/test_simple.py::test_warn_asyncio_marker_for_regular_func PASSED                                                         [33/73]
tests/test_simple.py::test_invalid_asyncio_mode PASSED                                                                         [34/73]
tests/test_subprocess.py::test_subprocess PASSED                                                                               [35/73]
tests/async_fixtures/test_async_fixtures.py::test_async_fixture PASSED                                                         [36/73]
tests/async_fixtures/test_async_fixtures.py::TestAsyncFixtureMethod::test_async_fixture_method PASSED                          [37/73]
tests/async_fixtures/test_async_fixtures_scope.py::test_async_fixture_scope PASSED                                             [38/73]
tests/async_fixtures/test_async_fixtures_with_finalizer.py::test_module_with_event_loop_finalizer PASSED                       [39/73]
tests/async_fixtures/test_async_fixtures_with_finalizer.py::test_module_with_get_event_loop_finalizer PASSED                   [40/73]
tests/async_fixtures/test_async_gen_fixtures.py::test_async_gen_fixture PASSED                                                 [41/73]
tests/async_fixtures/test_async_gen_fixtures.py::test_async_gen_fixture_finalized PASSED                                       [42/73]
tests/async_fixtures/test_async_gen_fixtures.py::TestAsyncGenFixtureMethod::test_async_gen_fixture_method PASSED               [43/73]
tests/async_fixtures/test_nested.py::test_async_fixture PASSED                                                                 [44/73]
tests/async_fixtures/test_parametrized_loop.py::test_parametrized_loop[1-a] PASSED                                             [45/73]
tests/async_fixtures/test_parametrized_loop.py::test_parametrized_loop[1-b] PASSED                                             [46/73]
tests/async_fixtures/test_parametrized_loop.py::test_parametrized_loop[2-a] PASSED                                             [47/73]
tests/async_fixtures/test_parametrized_loop.py::test_parametrized_loop[2-b] PASSED                                             [48/73]
tests/hypothesis/test_base.py::test_mark_inner PASSED                                                                          [49/73]
tests/hypothesis/test_base.py::test_mark_outer PASSED                                                                          [50/73]
tests/hypothesis/test_base.py::test_mark_and_parametrize[1] PASSED                                                             [51/73]
tests/hypothesis/test_base.py::test_mark_and_parametrize[2] PASSED                                                             [52/73]
tests/hypothesis/test_base.py::test_can_use_explicit_event_loop_fixture PASSED                                                 [53/73]
tests/hypothesis/test_base.py::test_async_auto_marked PASSED                                                                   [54/73]
tests/hypothesis/test_base.py::test_sync_not_auto_marked PASSED                                                                [55/73]
tests/hypothesis/test_inherited_test.py::TestOne::test_hypothesis PASSED                                                       [56/73]
tests/hypothesis/test_inherited_test.py::TestTwo::test_hypothesis FAILED                                                       [57/73]
tests/loop_fixture_scope/test_loop_fixture_scope.py::test_for_custom_loop PASSED                                               [58/73]
tests/loop_fixture_scope/test_loop_fixture_scope.py::test_dependent_fixture PASSED                                             [59/73]
tests/markers/test_class_marker.py::TestPyTestMark::test_is_asyncio PASSED                                                     [60/73]
tests/markers/test_module_marker.py::TestPyTestMark::test_is_asyncio PASSED                                                    [61/73]
tests/markers/test_module_marker.py::test_is_asyncio PASSED                                                                    [62/73]
tests/modes/test_auto_mode.py::test_auto_mode_cmdline PASSED                                                                   [63/73]
tests/modes/test_auto_mode.py::test_auto_mode_cfg PASSED                                                                       [64/73]
tests/modes/test_auto_mode.py::test_auto_mode_async_fixture PASSED                                                             [65/73]
tests/modes/test_auto_mode.py::test_auto_mode_method_fixture PASSED                                                            [66/73]
tests/modes/test_auto_mode.py::test_auto_mode_static_method PASSED                                                             [67/73]
tests/modes/test_auto_mode.py::test_auto_mode_static_method_fixture PASSED                                                     [68/73]
tests/modes/test_strict_mode.py::test_strict_mode_cmdline PASSED                                                               [69/73]
tests/modes/test_strict_mode.py::test_strict_mode_cfg PASSED                                                                   [70/73]
tests/modes/test_strict_mode.py::test_strict_mode_method_fixture PASSED                                                        [71/73]
tests/multiloop/test_alternative_loops.py::test_for_custom_loop PASSED                                                         [72/73]
tests/multiloop/test_alternative_loops.py::test_dependent_fixture PASSED                                                       [73/73]

============================================================== FAILURES ===============================================================
_______________________________________________________ TestTwo.test_hypothesis _______________________________________________________
tests/hypothesis/test_inherited_test.py:8: in test_hypothesis
    @given(value=st.integers())
E   hypothesis.errors.FailedHealthCheck: The method BaseClass.test_hypothesis was called from multiple different executors. This may lead to flaky tests and nonreproducible errors when replaying from database.                                                             
E   See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.differing_executors to the suppress_health_check settings for this test.                                
        f          = <function given.<locals>.run_test_as_given.<locals>.wrapped_test at 0x7f6af7762320>
        self       = <test_inherited_test.TestTwo object at 0x7f6af7a83c10>
======================================================= short test summary info =======================================================
FAILED tests/hypothesis/test_inherited_test.py::TestTwo::test_hypothesis - hypothesis.errors.FailedHealthCheck: The method BaseClass.test_hypothesis was called from multiple different executors. This may l...
============================================= 1 failed, 72 passed, 3 deselected in 5.76s ==============================================
Comment 1 Michael Seifert 2023-11-10 13:59:08 UTC
The failing test makes incorrect use of the Hypothesis library. This hasn't been discovered until hypothesis-6.83.2, when Hypothesis started raising a health check error.

The corresponding test has been removed from pytest-asyncio:
https://github.com/pytest-dev/pytest-asyncio/commit/fd57e55db1170c029324a7a9c56f86f14468217e

The change is included in pytest-asyncio-0.22.0, which is broken and accordingly masked in Portage, and in the upcoming v0.23 release.

There are no plans for a pytest-asyncio patch release in the v0.21 line.
Comment 2 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2023-11-10 14:03:55 UTC
Thanks for investigating this!
Comment 3 Larry the Git Cow gentoo-dev 2023-11-10 14:38:53 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d760995a64c135f24f0b2665440bdcaea5e58dd3

commit d760995a64c135f24f0b2665440bdcaea5e58dd3
Author:     Michał Górny <mgorny@gentoo.org>
AuthorDate: 2023-11-10 14:06:18 +0000
Commit:     Michał Górny <mgorny@gentoo.org>
CommitDate: 2023-11-10 14:38:46 +0000

    dev-python/pytest-asyncio: Deselect a broken test
    
    Closes: https://bugs.gentoo.org/916339
    Signed-off-by: Michał Górny <mgorny@gentoo.org>

 dev-python/pytest-asyncio/pytest-asyncio-0.21.1.ebuild | 3 +++
 1 file changed, 3 insertions(+)