• Bug#1061013: pytest-twisted: FTBFS: FAILED test_async_fixture.py::test_

    From Lucas Nussbaum@21:1/5 to All on Tue Jan 16 21:00:17 2024
    Source: pytest-twisted
    Version: 1.14.0-1
    Severity: serious
    Justification: FTBFS
    Tags: trixie sid ftbfs
    User: lucas@debian.org
    Usertags: ftbfs-20240115 ftbfs-trixie

    Hi,

    During a rebuild of all packages in sid, your package failed to build
    on amd64.


    Relevant part (hopefully):
    debian/rules binary
    dh binary --buildsystem=pybuild
    dh_update_autotools_config -O--buildsystem=pybuild
    dh_autoreconf -O--buildsystem=pybuild
    dh_auto_configure -O--buildsystem=pybuild
    I: pybuild base:305: python3.12 setup.py config
    running config
    I: pybuild base:305: python3.11 setup.py config
    running config
    dh_auto_build -O--buildsystem=pybuild
    I: pybuild base:305: /usr/bin/python3.12 setup.py build
    running build
    running build_py
    copying pytest_twisted.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_pytest-twisted/build
    I: pybuild base:305: /usr/bin/python3 setup.py build
    running build
    running build_py
    copying pytest_twisted.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pytest-twisted/build
    dh_auto_test -O--buildsystem=pybuild
    I: pybuild pybuild:310: python3.12 setup.py egg_info && cp -r /<<PKGBUILDDIR>>/*.egg-info /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_pytest-twisted/build
    running egg_info
    creating pytest_twisted.egg-info
    writing pytest_twisted.egg-info/PKG-INFO
    writing dependency_links to pytest_twisted.egg-info/dependency_links.txt writing entry points to pytest_twisted.egg-info/entry_points.txt
    writing requirements to pytest_twisted.egg-info/requires.txt
    writing top-level names to pytest_twisted.egg-info/top_level.txt
    writing manifest file 'pytest_twisted.egg-info/SOURCES.txt'
    reading manifest file 'pytest_twisted.egg-info/SOURCES.txt'
    reading manifest template 'MANIFEST.in'
    adding license file 'LICENSE'
    writing manifest file 'pytest_twisted.egg-info/SOURCES.txt'
    I: pybuild base:305: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_pytest-twisted/build; python3.12 -m pytest -v testing --reactor=default && python3.12 -m pytest -v testing --reactor=asyncio
    ============================= test session starts ==============================
    platform linux -- Python 3.12.1, pytest-7.4.4, pluggy-1.3.0 -- /usr/bin/python3.12
    cachedir: .pytest_cache
    rootdir: /<<PKGBUILDDIR>>
    plugins: twisted-1.14.0
    collecting ... collected 60 items

    testing/test_basic.py::test_inline_callbacks_in_pytest PASSED [ 1%]
    testing/test_basic.py::test_inline_callbacks_in_pytest_deprecation[pytest.inlineCallbacks-True] PASSED [ 3%]
    testing/test_basic.py::test_inline_callbacks_in_pytest_deprecation[pytest_twisted.inlineCallbacks-False] PASSED [ 5%]
    testing/test_basic.py::test_blockon_in_pytest PASSED [ 6%]
    testing/test_basic.py::test_blockon_in_pytest_deprecation[pytest.blockon-True] PASSED [ 8%]
    testing/test_basic.py::test_blockon_in_pytest_deprecation[pytest_twisted.blockon-False] PASSED [ 10%]
    testing/test_basic.py::test_fail_later FAILED [ 11%]
    testing/test_basic.py::test_succeed_later PASSED [ 13%]
    testing/test_basic.py::test_non_deferred PASSED [ 15%]
    testing/test_basic.py::test_exception PASSED [ 16%]
    testing/test_basic.py::test_inlineCallbacks[no call] FAILED [ 18%]
    testing/test_basic.py::test_inlineCallbacks[empty call] FAILED [ 20%]
    testing/test_basic.py::test_async_await[no call] FAILED [ 21%]
    testing/test_basic.py::test_async_await[empty call] FAILED [ 23%]
    testing/test_basic.py::test_twisted_greenlet PASSED [ 25%]
    testing/test_basic.py::test_blockon_in_fixture FAILED [ 26%]
    testing/test_basic.py::test_blockon_in_fixture_async FAILED [ 28%]
    testing/test_basic.py::test_async_fixture FAILED [ 30%]
    testing/test_basic.py::test_async_fixture_no_arguments[no call] PASSED [ 31%]
    testing/test_basic.py::test_async_fixture_no_arguments[empty call] PASSED [ 33%]
    testing/test_basic.py::test_async_yield_fixture_ordered_teardown FAILED [ 35%]
    testing/test_basic.py::test_async_yield_fixture_can_await FAILED [ 36%]
    testing/test_basic.py::test_async_yield_fixture_failed_test FAILED [ 38%]
    testing/test_basic.py::test_async_yield_fixture_test_exception FAILED [ 40%]
    testing/test_basic.py::test_async_yield_fixture_yields_twice PASSED [ 41%]
    testing/test_basic.py::test_async_yield_fixture_teardown_exception FAILED [ 43%]
    testing/test_basic.py::test_async_yield_fixture_no_arguments[no call] FAILED [ 45%]
    testing/test_basic.py::test_async_yield_fixture_no_arguments[empty call] FAILED [ 46%]
    testing/test_basic.py::test_async_yield_fixture_function_scope FAILED [ 48%]
    testing/test_basic.py::test_async_simple_fixture_in_fixture PASSED [ 50%]
    testing/test_basic.py::test_async_yield_simple_fixture_in_fixture FAILED [ 51%]
    testing/test_basic.py::test_async_fixture_in_fixture[innerasync=True] PASSED [ 53%]
    testing/test_basic.py::test_async_fixture_in_fixture[innerasync=False] PASSED [ 55%]
    testing/test_basic.py::test_async_yield_fixture_in_fixture[innerasync=True] FAILED [ 56%]
    testing/test_basic.py::test_async_yield_fixture_in_fixture[innerasync=False] FAILED [ 58%]
    testing/test_basic.py::test_blockon_in_hook PASSED [ 60%]
    testing/test_basic.py::test_wrong_reactor PASSED [ 61%]
    testing/test_basic.py::test_blockon_in_hook_with_qt5reactor SKIPPED [ 63%]
    testing/test_basic.py::test_wrong_reactor_with_qt5reactor SKIPPED (r...) [ 65%]
    testing/test_basic.py::test_pytest_from_reactor_thread FAILED [ 66%]
    testing/test_basic.py::test_blockon_in_hook_with_asyncio SKIPPED (re...) [ 68%]
    testing/test_basic.py::test_wrong_reactor_with_asyncio SKIPPED (reac...) [ 70%]
    testing/test_basic.py::test_async_fixture_module_scope FAILED [ 71%]
    testing/test_basic.py::test_inlinecallbacks_method_with_fixture_gets_self PASSED [ 73%]
    testing/test_basic.py::test_inlinecallbacks_method_with_fixture_gets_fixture PASSED [ 75%]
    testing/test_basic.py::test_ensuredeferred_method_with_fixture_gets_self PASSED [ 76%]
    testing/test_basic.py::test_ensuredeferred_method_with_fixture_gets_fixture PASSED [ 78%]
    testing/test_basic.py::test_import_pytest_twisted_in_conftest_py_not_a_problem PASSED [ 80%]
    testing/test_basic.py::test_addSystemEventTrigger[before-shutdown-False] PASSED [ 81%]
    testing/test_basic.py::test_addSystemEventTrigger[before-shutdown-True] PASSED [ 83%]
    testing/test_basic.py::test_addSystemEventTrigger[during-shutdown-False] PASSED [ 85%]
    testing/test_basic.py::test_addSystemEventTrigger[during-shutdown-True] PASSED [ 86%]
    testing/test_basic.py::test_addSystemEventTrigger[after-shutdown-False] PASSED [ 88%]
    testing/test_basic.py::test_addSystemEventTrigger[after-shutdown-True] PASSED [ 90%]
    testing/test_basic.py::test_sigint_for_regular_tests PASSED [ 91%]
    testing/test_basic.py::test_sigint_for_inline_callbacks_tests FAILED [ 93%]
    testing/test_basic.py::test_hypothesis_async_passes SKIPPED (hypothe...) [ 95%]
    testing/test_basic.py::test_hypothesis_inline_callbacks_passes SKIPPED [ 96%]
    testing/test_basic.py::test_hypothesis_async_fails SKIPPED (hypothes...) [ 98%]
    testing/test_basic.py::test_hypothesis_inline_callbacks_fails SKIPPED [100%]

    =================================== FAILURES ===================================
    _______________________________ test_fail_later ________________________________

    testdir = <Testdir local('/tmp/pytest-of-user42/pytest-6/test_fail_later0')> cmd_opts = ('/usr/bin/python3.12', '-m', 'pytest', '-v', '--reactor=default')

    def test_fail_later(testdir, cmd_opts):
    test_file = """
    from twisted.internet import reactor, defer

    def test_fail():
    def doit():
    try:
    1 / 0
    except:
    d.errback()

    d = defer.Deferred()
    reactor.callLater(0.01, doit)
    return d
    """
    testdir.makepyfile(test_file)
    rr = testdir.run(*cmd_opts, timeout=timeout)
    assert_outcomes(rr, {"failed": 1})

    /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_pytest-twisted/build/testing/test_basic.py:220:
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

    run_result = <RunResult ret=1 len(stdout.lines)=27 len(stderr.lines)=0 duration=0.67s>
    outcomes = {'failed': 1}

    def assert_outcomes(run_result, outcomes):
    formatted_output = format_run_result_output_for_assert(run_result)

    try:
    result_outcomes = run_result.parseoutcomes()
    except ValueError:
    assert False, formatted_output

    normalized_result_outcomes = {
    force_plural(name): outcome
    for name, outcome in result_outcomes.items()
    if name != "seconds"
    }

    assert normalized_result_outcomes == outcomes, formatted_output
    E AssertionError:
    E ---- stdout
    E ============================= test session starts ==============================
    E platform linux -- Python 3.12.1, pytest-7.4.4, pluggy-1.3.0 -- /usr/bin/python3.12
    E cachedir: .pytest_cache
    E rootdir: /tmp/pytest-of-user42/pytest-6/test_fail_later0
    E plugins: twisted-1.14.0
    E collecting ... collected 1 item
    E
    E test_fail_later.py::test_fail FAILED [100%]
    E
    E =================================== FAILURES ===================================
    E __________________________________ test_fail ___________________________________
    E
    E def doit():
    E try:
    E > 1 / 0
    E E ZeroDivisionError: division by zero
    E
    E test_fail_later.py:6: ZeroDivisionError
    E =============================== warnings summary ===============================
    E test_fail_later.py::test_fail
    E /usr/lib/python3/dist-packages/twisted/python/failure.py:519: DeprecationWarning: the (type, exc, tb) signature of throw() is deprecated, use the single-arg signature instead.
    E return g.throw(self.type, self.value, self.tb)
    E
    E -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
    E =========================== short test summary info ============================
    E FAILED test_fail_later.py::test_fail - ZeroDivisionError: division by zero
    E ========================= 1 failed, 1 warning in 0.06s =========================
    E ---- stderr
    E
    E ----
    E
    E assert {'failed': 1, 'warnings': 1} == {'failed': 1}
    E Omitting 1 identical items, use -vv to show
    E Left contains 1 more item:
    E {'warnings': 1}
    E Full diff:
    E - {'failed': 1}
    E + {'failed': 1, 'warnings': 1}

    /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_pytest-twisted/build/testing/test_basic.py:45: AssertionError
    ----------------------------- Captured stdout call -----------------------------
    running: /usr/bin/python3.12 -m pytest -v --reactor=default
    in: /tmp/pytest-of-user42/pytest-6/test_fail_later0 ============================= test session starts ==============================
    platform linux -- Python 3.12.1, pytest-7.4.4, pluggy-1.3.0 -- /usr/bin/python3.12
    cachedir: .pytest_cache
    rootdir: /tmp/pytest-of-user42/pytest-6/test_fail_later0
    plugins: twisted-1.14.0
    collecting ... collected 1 item

    test_fail_later.py::test_fail FAILED [100%]

    =================================== FAILURES ===================================
    __________________________________ test_fail ___________________________________

    def doit():
    try:
    1 / 0
    E ZeroDivisionError: division by zero

    test_fail_later.py:6: ZeroDivisionError
    =============================== warnings summary ===============================
    test_fail_later.py::test_fail
    /usr/lib/python3/dist-packages/twisted/python/failure.py:519: DeprecationWarning: the (type, exc, tb) signature of throw() is deprecated, use the single-arg signature instead.
    return g.throw(self.type, self.value, self.tb)

    -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html =========================== short test summary info ============================
    FAILED test_fail_later.py::test_fail - ZeroDivisionError: division by zero ========================= 1 failed, 1 warning in 0.06s =========================
    ________________________ test_inlineCallbacks[no call] _________________________

    testdir = <Testdir local('/tmp/pytest-of-user42/pytest-6/test_inlineCallbacks0')>
    cmd_opts = ('/usr/bin/python3.12', '-m', 'pytest', '-v', '--reactor=default') empty_optional_call = ''

    def test_inlineCallbacks(testdir, cmd_opts, empty_optional_call):
    test_file = """
    from twisted.internet import reactor, defer
    import pytest
    import pytest_twisted

    @pytest.fixture(scope="module", params=["fs", "imap", "web"])
    def foo(request):
    return request.param

    @pytest_twisted.inlineCallbacks{optional_call}
    def test_succeed(foo):
    yield defer.succeed(foo)
    if foo == "web":
    raise RuntimeError("baz")
    """.format(optional_call=empty_optional_call)
    testdir.makepyfile(test_file)
    rr = testdir.run(*cmd_opts, timeout=timeout)
    assert_outcomes(rr, {"passed": 2, "failed": 1})

    /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_pytest-twisted/build/testing/test_basic.py:286:
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

    run_result = <RunResult ret=1 len(stdout.lines)=33 len(stderr.lines)=0 duration=0.57s>
    outcomes = {'failed': 1, 'passed': 2}

    def assert_outcomes(run_result, outcomes):
    formatted_output = format_run_result_output_for_assert(run_result)

    try:
    result_outcomes = run_result.parseoutcomes()
    except ValueError:
    assert False, formatted_output

    normalized_result_outcomes = {
    force_plural(name): outcome
    for name, outcome in result_outcomes.items()
    if name != "seconds"
    }

    assert normalized_result_outcomes == outcomes, formatted_output
    E AssertionError:
    E ---- stdout
    E ============================= test session starts ==============================
    E platform linux -- Python 3.12.1, pytest-7.4.4, pluggy-1.3.0 -- /usr/bin/python3.12
    E cachedir: .pytest_cache
    E rootdir: /tmp/pytest-of-user42/pytest-6/test_inlineCallbacks0
    E plugins: twisted-1.14.0
    E collecting ... collected 3 items
    E
    E test_inlineCallbacks.py::test_succeed[fs] PASSED [ 33%]
    E test_inlineCallbacks.py::test_succeed[imap] PASSED [ 66%]
    E test_inlineCallbacks.py::test_succeed[web] FAILED [100%]
    E
    E =================================== FAILURES ===================================
    E ______________________________ test_succeed[web] _______________________________
    E
    E foo = 'web'
    E
    E @pytest_twisted.inlineCallbacks
    E def test_succeed(foo):
    E yield defer.succeed(foo)
    E if foo == "web":
    E > raise RuntimeError("baz")
    E E RuntimeError: baz
    E
    E test_inlineCallbacks.py:13: RuntimeError
    E =============================== warnings summary ===============================
    E test_inlineCallbacks.py::test_succeed[web]
    E /usr/lib/python3/dist-packages/twisted/python/failure.py:519: DeprecationWarning: the (type, exc, tb) signature of throw() is deprecated, use the single-arg signature instead.
    E return g.throw(self.type, self.value, self.tb)
    E
    E -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
    E =========================== short test summary info ============================
    E FAILED test_inlineCallbacks.py::test_succeed[web] - RuntimeError: baz
    E ==================== 1 failed, 2 passed, 1 warning in 0.05s ====================
    E ---- stderr
    E
    E ----
    E
    E assert {'failed': 1,...'warnings': 1} == {'failed': 1, 'passed': 2}
    E Omitting 2 identical items, use -vv to show
    E Left contains 1 more item:
    E {'warnings': 1}
    E Full diff:
    E - {'failed': 1, 'passed': 2}
    E + {'failed': 1, 'passed': 2, 'warnings': 1}
    E ? +++++++++++++++

    /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_pytest-twisted/build/testing/test_basic.py:45: AssertionError
    ----------------------------- Captured stdout call -----------------------------
    running: /usr/bin/python3.12 -m pytest -v --reactor=default
    in: /tmp/pytest-of-user42/pytest-6/test_inlineCallbacks0 ============================= test session starts ==============================
    platform linux -- Python 3.12.1, pytest-7.4.4, pluggy-1.3.0 -- /usr/bin/python3.12
    cachedir: .pytest_cache
    rootdir: /tmp/pytest-of-user42/pytest-6/test_inlineCallbacks0
    plugins: twisted-1.14.0
    collecting ... collected 3 items

    test_inlineCallbacks.py::test_succeed[fs] PASSED [ 33%]
    test_inlineCallbacks.py::test_succeed[imap] PASSED [ 66%]
    test_inlineCallbacks.py::test_succeed[web] FAILED [100%]

    =================================== FAILURES ===================================
    ______________________________ test_succeed[web] _______________________________

    foo = 'web'

    @pytest_twisted.inlineCallbacks
    def test_succeed(foo):
    yield defer.succeed(foo)
    if foo == "web":
    raise RuntimeError("baz")
    E RuntimeError: baz

    test_inlineCallbacks.py:13: RuntimeError
    =============================== warnings summary ===============================
    test_inlineCallbacks.py::test_succeed[web]
    /usr/lib/python3/dist-packages/twisted/python/failure.py:519: DeprecationWarning: the (type, exc, tb) signature of throw() is deprecated, use the single-arg signature instead.
    return g.throw(self.type, self.value, self.tb)

    -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html =========================== short test summary info ============================
    FAILED test_inlineCallbacks.py::test_succeed[web] - RuntimeError: baz ==================== 1 failed, 2 passed, 1 warning in 0.05s ====================
    _______________________ test_inlineCallbacks[empty call] _______________________

    testdir = <Testdir local('/tmp/pytest-of-user42/pytest-6/test_inlineCallbacks1')>
    cmd_opts = ('/usr/bin/python3.12', '-m', 'pytest', '-v', '--reactor=default') empty_optional_call = '()'

    def test_inlineCallbacks(testdir, cmd_opts, empty_optional_call):
    test_file = """
    from twisted.internet import reactor, defer
    import pytest
    import pytest_twisted

    @pytest.fixture(scope="module", params=["fs", "imap", "web"])
    def foo(request):
    return request.param

    @pytest_twisted.inlineCallbacks{optional_call}
    def test_succeed(foo):
    yield defer.succeed(foo)
    if foo == "web":
    raise RuntimeError("baz")
    """.format(optional_call=empty_optional_call)
    testdir.makepyfile(test_file)
    rr = testdir.run(*cmd_opts, timeout=timeout)
    assert_outcomes(rr, {"passed": 2, "failed": 1})

    /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_pytest-twisted/build/testing/test_basic.py:286:
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

    run_result = <RunResult ret=1 len(stdout.lines)=33 len(stderr.lines)=0 duration=0.57s>
    outcomes = {'failed': 1, 'passed': 2}

    def assert_outcomes(run_result, outcomes):
    formatted_output = format_run_result_output_for_assert(run_result)

    try:
    result_outcomes = run_result.parseoutcomes()
    except ValueError:
    assert False, formatted_output

    normalized_result_outcomes = {
    force_plural(name): outcome
    for name, outcome in result_outcomes.items()
    if name != "seconds"
    }

    assert normalized_result_outcomes == outcomes, formatted_output
    E AssertionError:
    E ---- stdout
    E ============================= test session starts ==============================
    E platform linux -- Python 3.12.1, pytest-7.4.4, pluggy-1.3.0 -- /usr/bin/python3.12
    E cachedir: .pytest_cache
    E rootdir: /tmp/pytest-of-user42/pytest-6/test_inlineCallbacks1
    E plugins: twisted-1.14.0
    E collecting ... collected 3 items
    E
    E test_inlineCallbacks.py::test_succeed[fs] PASSED [ 33%]
    E test_inlineCallbacks.py::test_succeed[imap] PASSED [ 66%]
    E test_inlineCallbacks.py::test_succeed[web] FAILED [100%]
    E
    E =================================== FAILURES ===================================
    E ______________________________ test_succeed[web] _______________________________
    E
    E foo = 'web'
    E
    E @pytest_twisted.inlineCallbacks()
    E def test_succeed(foo):
    E yield defer.succeed(foo)
    E if foo == "web":
    E > raise RuntimeError("baz")
    E E RuntimeError: baz
    E
    E test_inlineCallbacks.py:13: RuntimeError
    E =============================== warnings summary ===============================
    E test_inlineCallbacks.py::test_succeed[web]
    E /usr/lib/python3/dist-packages/twisted/python/failure.py:519: DeprecationWarning: the (type, exc, tb) signature of throw() is deprecated, use the single-arg signature instead.
    E return g.throw(self.type, self.value, self.tb)
    E
    E -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
    E =========================== short test summary info ============================
    E FAILED test_inlineCallbacks.py::test_succeed[web] - RuntimeError: baz
    E ==================== 1 failed, 2 passed, 1 warning in 0.05s ====================
    E ---- stderr
    E
    E ----
    E
    E assert {'failed': 1,...'warnings': 1} == {'failed': 1, 'passed': 2}
    E Omitting 2 identical items, use -vv to show
    E Left contains 1 more item:
    E {'warnings': 1}
    E Full diff:
    E - {'failed': 1, 'passed': 2}
    E + {'failed': 1, 'passed': 2, 'warnings': 1}
    E ? +++++++++++++++

    /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_pytest-twisted/build/testing/test_basic.py:45: AssertionError
    ----------------------------- Captured stdout call -----------------------------
    running: /usr/bin/python3.12 -m pytest -v --reactor=default
    in: /tmp/pytest-of-user42/pytest-6/test_inlineCallbacks1 ============================= test session starts ==============================
    platform linux -- Python 3.12.1, pytest-7.4.4, pluggy-1.3.0 -- /usr/bin/python3.12
    cachedir: .pytest_cache
    rootdir: /tmp/pytest-of-user42/pytest-6/test_inlineCallbacks1
    plugins: twisted-1.14.0
    collecting ... collected 3 items

    test_inlineCallbacks.py::test_succeed[fs] PASSED [ 33%]
    test_inlineCallbacks.py::test_succeed[imap] PASSED [ 66%]
    test_inlineCallbacks.py::test_succeed[web] FAILED [100%]

    =================================== FAILURES ===================================
    ______________________________ test_succeed[web] _______________________________

    foo = 'web'

    @pytest_twisted.inlineCallbacks()
    def test_succeed(foo):
    yield defer.succeed(foo)
    if foo == "web":
    raise RuntimeError("baz")
    E RuntimeError: baz

    test_inlineCallbacks.py:13: RuntimeError
    =============================== warnings summary ===============================
    test_inlineCallbacks.py::test_succeed[web]
    /usr/lib/python3/dist-packages/twisted/python/failure.py:519: DeprecationWarning: the (type, exc, tb) signature of throw() is deprecated, use the single-arg signature instead.
    return g.throw(self.type, self.value, self.tb)

    -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html =========================== short test summary info ============================
    FAILED test_inlineCallbacks.py::test_succeed[web] - RuntimeError: baz ==================== 1 failed, 2 passed, 1 warning in 0.05s ====================
    __________________________ test_async_await[no call] ___________________________

    testdir = <Testdir local('/tmp/pytest-of-user42/pytest-6/test_async_await0')> cmd_opts = ('/usr/bin/python3.12', '-m', 'pytest', '-v', '--reactor=default') empty_optional_call = ''

    @skip_if_no_async_await()
    def test_async_await(testdir, cmd_opts, empty_optional_call):
    test_file = """
    from twisted.internet import reactor, defer
    import pytest
    import pytest_twisted

    @pytest.fixture(scope="module", params=["fs", "imap", "web"])
    def foo(request):
    return request.param

    @pytest_twisted.ensureDeferred{optional_call}
    async def test_succeed(foo):
    await defer.succeed(foo)
    if foo == "web":
    raise RuntimeError("baz")
    """.format(optional_call=empty_optional_call)
    testdir.makepyfile(test_file)
    rr = testdir.run(*cmd_opts, timeout=timeout)
    assert_outcomes(rr, {"passed": 2, "failed": 1})

    /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_pytest-twisted/build/testing/test_basic.py:308:
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

    run_result = <RunResult ret=1 len(stdout.lines)=33 len(stderr.lines)=0 duration=0.62s>
    outcomes = {'failed': 1, 'passed': 2}

    def assert_outcomes(run_result, outcomes):
    formatted_output = format_run_result_output_for_assert(run_result)

    try:
    result_outcomes = run_result.parseoutcomes()
    except ValueError:
    assert False, formatted_output

    normalized_result_outcomes = {
    force_plural(name): outcome
    for name, outcome in result_outcomes.items()
    if name != "seconds"
    }

    assert normalized_result_outcomes == outcomes, formatted_output
    E AssertionError:
    E ---- stdout
    E ============================= test session starts ==============================
    E platform linux -- Python 3.12.1, pytest-7.4.4, pluggy-1.3.0 -- /usr/bin/python3.12
    E cachedir: .pytest_cache
    E rootdir: /tmp/pytest-of-user42/pytest-6/test_async_await0
    E plugins: twisted-1.14.0
    E collecting ... collected 3 items
    E
    E test_async_await.py::test_succeed[fs] PASSED [ 33%]
    E test_async_await.py::test_succeed[imap] PASSED [ 66%]
    E test_async_await.py::test_succeed[web] FAILED [100%]
    E
    E =================================== FAILURES ===================================
    E ______________________________ test_succeed[web] _______________________________
    E
    E foo = 'web'
    E
    E @pytest_twisted.ensureDeferred
    E async def test_succeed(foo):
    E await defer.succeed(foo)
    E if foo == "web":
    E > raise RuntimeError("baz")
    E E RuntimeError: baz
    E
    E test_async_await.py:13: RuntimeError
    E =============================== warnings summary ===============================
    E test_async_await.py::test_succeed[web]
    E /usr/lib/python3/dist-packages/twisted/python/failure.py:519: DeprecationWarning: the (type, exc, tb) signature of throw() is deprecated, use the single-arg signature instead.
    E return g.throw(self.type, self.value, self.tb)
    E
    E -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
    E =========================== short test summary info ============================
    E FAILED test_async_await.py::test_succeed[web] - RuntimeError: baz
    E ==================== 1 failed, 2 passed, 1 warning in 0.05s ====================
    E ---- stderr
    E
    E ----
    E
    E assert {'failed': 1,...'warnings': 1} == {'failed': 1, 'passed': 2}
    E Omitting 2 identical items, use -vv to show
    E Left contains 1 more item:
    E {'warnings': 1}
    E Full diff:
    E - {'failed': 1, 'passed': 2}
    E + {'failed': 1, 'passed': 2, 'warnings': 1}
    E ? +++++++++++++++

    /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_pytest-twisted/build/testing/test_basic.py:45: AssertionError
    ----------------------------- Captured stdout call -----------------------------
    running: /usr/bin/python3.12 -m pytest -v --reactor=default
    in: /tmp/pytest-of-user42/pytest-6/test_async_await0 ============================= test session starts ==============================
    platform linux -- Python 3.12.1, pytest-7.4.4, pluggy-1.3.0 -- /usr/bin/python3.12
    cachedir: .pytest_cache
    rootdir: /tmp/pytest-of-user42/pytest-6/test_async_await0
    plugins: twisted-1.14.0
    collecting ... collected 3 items

    test_async_await.py::test_succeed[fs] PASSED [ 33%]
    test_async_await.py::test_succeed[imap] PASSED [ 66%]
    test_async_await.py::test_succeed[web] FAILED [100%]

    =================================== FAILURES ===================================
    ______________________________ test_succeed[web] _______________________________

    foo = 'web'

    @pytest_twisted.ensureDeferred
    async def test_succeed(foo):
    await defer.succeed(foo)
    if foo == "web":
    raise RuntimeError("baz")
    E RuntimeError: baz

    test_async_await.py:13: RuntimeError
    =============================== warnings summary ===============================
    test_async_await.py::test_succeed[web]
    /usr/lib/python3/dist-packages/twisted/python/failure.py:519: DeprecationWarning: the (type, exc, tb) signature of throw() is deprecated, use the single-arg signature instead.
    return g.throw(self.type, self.value, self.tb)

    -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html =========================== short test summary info ============================
    FAILED test_async_await.py::test_succeed[web] - RuntimeError: baz ==================== 1 failed, 2 passed, 1 warning in 0.05s ====================
    _________________________ test_async_await[empty call] _________________________

    testdir = <Testdir local('/tmp/pytest-of-user42/pytest-6/test_async_await1')>

    [continued in next message]

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Debian Bug Tracking System@21:1/5 to All on Tue Jan 16 21:40:01 2024
    Processing control commands:

    tag -1 pending
    Bug #1061013 [src:pytest-twisted] pytest-twisted: FTBFS: FAILED test_async_fixture.py::test_succeed_blue[web] - RuntimeError: baz
    Added tag(s) pending.

    --
    1061013: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1061013
    Debian Bug Tracking System
    Contact owner@bugs.debian.org with problems

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Timo =?UTF-8?Q?R=C3=B6hling?=@21:1/5 to All on Tue Jan 16 21:40:01 2024
    Control: tag -1 pending

    Hello,

    Bug #1061013 in pytest-twisted reported by you has been fixed in the
    Git repository and is awaiting an upload. You can see the commit
    message below and you can check the diff of the fix at:

    https://salsa.debian.org/python-team/packages/pytest-twisted/-/commit/5b4d3902ad9e4b6c012558bce4327cf54810eb06

    ------------------------------------------------------------------------
    Relax location constraint of ignored DeprecationWarning

    Closes: #1061013 ------------------------------------------------------------------------

    (this message was generated automatically)
    --
    Greetings

    https://bugs.debian.org/1061013

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Debian Bug Tracking System@21:1/5 to All on Tue Jan 16 22:10:02 2024
    This is a multi-part message in MIME format...

    Your message dated Tue, 16 Jan 2024 21:05:15 +0000
    with message-id <E1rPqcV-00CPJW-2y@fasolo.debian.org>
    and subject line Bug#1061013: fixed in pytest-twisted 1.14.0-2
    has caused the Debian Bug report #1061013,
    regarding pytest-twisted: FTBFS: FAILED test_async_fixture.py::test_succeed_blue[web] - RuntimeError: baz
    to be marked as done.

    This means that you claim that the problem has been dealt with.
    If this is not the case it is now your responsibility to reopen the
    Bug report if necessary, and/or fix the problem forthwith.

    (NB: If you are a system administrator and have no idea what this
    message is talking about, this may indicate a serious mail system misconfiguration somewhere. Please contact owner@bugs.debian.org
    immediately.)


    --
    1061013: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1061013
    Debian Bug Tracking System
    Contact owner@bugs.debian.org with problems

    Received: (at submit) by bugs.debian.org; 16 Jan 2024 19:45:21 +0000 X-Spam-Checker-Version: SpamAssassin 3.4.6-bugs.debian.org_2005_01_02
    (2021-04-09) on buxtehude.debian.org
    X-Spam-Level:
    X-Spam-Status: No, score=-106.9 required=4.0 tests=BAYES_00,DKIMWL_WL_HIGH,
    DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FOURLA,
    FROMDEVELOPER,SPF_HELO_NONE,SPF_NONE,T_SCC_BODY_TEXT_LINE,
    UNPARSEABLE_RELAY,USER_IN_DKIM_WELCOMELIST,USER_IN_DKIM_WHITELIST
    autolearn=ham autolearn_force=no
    version=3.4.6-bugs.debian.org_2005_01_02
    X-Spam-Bayes: score:0.0000 Tokens: new, 82; hammy, 150; neutral, 297; spammy,
    0. spammytokens: hammytokens:0.000-+--python3,
    0.000-+--Hx-spam-relays-external:sk:stravin, 0.000-+--H*RT:sk:stravin,
    0.000-+--Hx-spam-relays-external:311, 0.000-+--H*RT:108
    Return-path: <lucas@debian.org>
    Received: from stravinsky.debian.org ([2001: