Source: quart
Version: 0.19.4-1
Severity: serious
Justification: FTBFS
Tags: trixie sid ftbfs
User: lu...@debian.org
Usertags: ftbfs-20240313 ftbfs-trixie

Hi,

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


Relevant part (hopefully):
> make[1]: Entering directory '/<<PKGBUILDDIR>>'
> # The name of the project need to be written in lowercase letters,
> # otherwise pybuild wont find the WHEEL file (as it's created from the
> # project name starting with an capital letter).
> sed -i 's,name = "Quart",name = "quart",g' pyproject.toml
> dh_auto_build
> I: pybuild plugin_pyproject:129: Building wheel for python3.12 with "build" 
> module
> I: pybuild base:305: python3.12 -m build --skip-dependency-check 
> --no-isolation --wheel --outdir /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_quart 
>  
> * Building wheel...
> Successfully built quart-0.19.4-py3-none-any.whl
> I: pybuild plugin_pyproject:144: Unpacking wheel built for python3.12 with 
> "installer" module
> I: pybuild plugin_pyproject:129: Building wheel for python3.11 with "build" 
> module
> I: pybuild base:305: python3.11 -m build --skip-dependency-check 
> --no-isolation --wheel --outdir /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_quart 
>  
> * Building wheel...
> Successfully built quart-0.19.4-py3-none-any.whl
> I: pybuild plugin_pyproject:144: Unpacking wheel built for python3.11 with 
> "installer" module
> # Now undo the previous replacement again, we need to do this hack as
> # dpkg will otherwise complain about modified source code of course in
> # case the build is getting started twice in a row.
> sed -i 's,name = "quart",name = "Quart",g' pyproject.toml
> make[1]: Leaving directory '/<<PKGBUILDDIR>>'
>    dh_auto_test -O--buildsystem=pybuild
> I: pybuild base:305: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_quart/build; 
> python3.12 -m pytest tests
> ============================= test session starts 
> ==============================
> platform linux -- Python 3.12.2, pytest-8.0.2, pluggy-1.4.0
> rootdir: /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_quart/build
> configfile: pyproject.toml
> plugins: cov-4.1.0, asyncio-0.20.3, hypothesis-6.98.15
> asyncio: mode=Mode.AUTO
> collected 250 items
> 
> tests/test_app.py .......................................                [ 
> 15%]
> tests/test_asgi.py ....................F......                           [ 
> 26%]
> tests/test_background_tasks.py ...                                       [ 
> 27%]
> tests/test_basic.py ..................                                   [ 
> 34%]
> tests/test_blueprints.py ........................                        [ 
> 44%]
> tests/test_cli.py .......                                                [ 
> 47%]
> tests/test_ctx.py ............                                           [ 
> 52%]
> tests/test_debug.py .                                                    [ 
> 52%]
> tests/test_exceptions.py ...                                             [ 
> 53%]
> tests/test_helpers.py ......................                             [ 
> 62%]
> tests/test_routing.py FF                                                 [ 
> 63%]
> tests/test_sessions.py ....                                              [ 
> 64%]
> tests/test_static_hosting.py .                                           [ 
> 65%]
> tests/test_sync.py ..                                                    [ 
> 66%]
> tests/test_templating.py .......                                         [ 
> 68%]
> tests/test_testing.py ..................................                 [ 
> 82%]
> tests/test_utils.py ..                                                   [ 
> 83%]
> tests/test_views.py ...                                                  [ 
> 84%]
> tests/wrappers/test_base.py ......                                       [ 
> 86%]
> tests/wrappers/test_request.py ..........                                [ 
> 90%]
> tests/wrappers/test_response.py .......................                  
> [100%]
> 
> =================================== FAILURES 
> ===================================
> ____________________ test_websocket_accept_connection_warns 
> ____________________
> 
> websocket_scope = {'asgi': {}, 'client': ('127.0.0.1', 80), 'extensions': {}, 
> 'headers': [(b'User-Agent', b'Hypercorn'), (b'X-Hypercorn', b'Hypercorn'), 
> (b'Referer', b'hypercorn')], ...}
> 
>     async def test_websocket_accept_connection_warns(websocket_scope: 
> WebsocketScope) -> None:
>         connection = ASGIWebsocketConnection(Quart(__name__), websocket_scope)
>     
>         async def mock_send(message: ASGISendEvent) -> None:
>             pass
>     
> >       with pytest.warns(None):
> 
> connection = <quart.asgi.ASGIWebsocketConnection object at 0x7f1fb9706720>
> mock_send  = <function 
> test_websocket_accept_connection_warns.<locals>.mock_send at 0x7f1fba0d8ae0>
> websocket_scope = {'asgi': {}, 'client': ('127.0.0.1', 80), 'extensions': {}, 
> 'headers': [(b'User-Agent', b'Hypercorn'), (b'X-Hypercorn', b'Hypercorn'), 
> (b'Referer', b'hypercorn')], ...}
> 
> tests/test_asgi.py:287: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
> self = WarningsChecker(record=True), expected_warning = None, match_expr = 
> None
> 
>     def __init__(
>         self,
>         expected_warning: Optional[
>             Union[Type[Warning], Tuple[Type[Warning], ...]]
>         ] = Warning,
>         match_expr: Optional[Union[str, Pattern[str]]] = None,
>         *,
>         _ispytest: bool = False,
>     ) -> None:
>         check_ispytest(_ispytest)
>         super().__init__(_ispytest=True)
>     
>         msg = "exceptions must be derived from Warning, not %s"
>         if expected_warning is None:
> >           warnings.warn(WARNS_NONE_ARG, stacklevel=4)
> E           pytest.PytestRemovedIn8Warning: Passing None has been deprecated.
> E           See 
> https://docs.pytest.org/en/latest/how-to/capture-warnings.html#additional-use-cases-of-warnings-in-tests
>  for alternatives in common use cases.
> 
> __class__  = <class '_pytest.recwarn.WarningsChecker'>
> _ispytest  = True
> expected_warning = None
> match_expr = None
> msg        = 'exceptions must be derived from Warning, not %s'
> self       = WarningsChecker(record=True)
> 
> /usr/lib/python3/dist-packages/_pytest/recwarn.py:281: PytestRemovedIn8Warning
> ________________________ test_bind_warning[localhost-0] 
> ________________________
> 
> server_name = 'localhost', expected = 0
> http_scope = {'asgi': {}, 'client': ('127.0.0.1', 80), 'extensions': {}, 
> 'headers': [(b'User-Agent', b'Hypercorn'), (b'X-Hypercorn', b'Hypercorn'), 
> (b'Referer', b'hypercorn')], ...}
> 
>     @pytest.mark.parametrize(
>         "server_name, expected",
>         [("localhost", 0), ("quart.com", 1)],
>     )
>     async def test_bind_warning(server_name: str, expected: int, http_scope: 
> HTTPScope) -> None:
>         map_ = QuartMap(host_matching=False)
>         request = Request(
>             "GET",
>             "http",
>             "/",
>             b"",
>             Headers([("host", "Localhost")]),
>             "",
>             "1.1",
>             http_scope,
>             send_push_promise=no_op_push,
>         )
> >       with pytest.warns(None) as record:
> 
> expected   = 0
> http_scope = {'asgi': {}, 'client': ('127.0.0.1', 80), 'extensions': {}, 
> 'headers': [(b'User-Agent', b'Hypercorn'), (b'X-Hypercorn', b'Hypercorn'), 
> (b'Referer', b'hypercorn')], ...}
> map_       = QuartMap([])
> request    = <Request 'http://localhost/' [GET]>
> server_name = 'localhost'
> 
> tests/test_routing.py:29: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> /usr/lib/python3/dist-packages/_pytest/recwarn.py:281: in __init__
>     warnings.warn(WARNS_NONE_ARG, stacklevel=4)
>         __class__  = <class '_pytest.recwarn.WarningsChecker'>
>         _ispytest  = True
>         expected_warning = None
>         match_expr = None
>         msg        = 'exceptions must be derived from Warning, not %s'
>         self       = WarningsChecker(record=True)
> /usr/lib/python3/dist-packages/_pytest/runner.py:342: in from_call
>     result: Optional[TResult] = func()
>         cls        = <class '_pytest.runner.CallInfo'>
>         duration   = 0.001240888006577734
>         excinfo    = <ExceptionInfo PytestRemovedIn8Warning('Passing None has 
> been deprecated.\nSee 
> https://docs.pytest.org/en/latest/how-to/capture-warnings.html#additional-use-cases-of-warnings-in-tests
>  for alternatives in common use cases.') tblen=34>
>         func       = <function call_runtest_hook.<locals>.<lambda> at 
> 0x7f1fba0d9c60>
>         precise_start = 45847.096292897
>         precise_stop = 45847.097533785
>         reraise    = (<class '_pytest.outcomes.Exit'>, <class 
> 'KeyboardInterrupt'>)
>         result     = None
>         start      = 1710275653.0762138
>         stop       = 1710275653.0774555
>         when       = 'call'
> /usr/lib/python3/dist-packages/_pytest/runner.py:263: in <lambda>
>     lambda: ihook(item=item, **kwds), when=when, reraise=reraise
>         ihook      = <HookCaller 'pytest_runtest_call'>
>         item       = <Function test_websocket_accept_connection_warns>
>         kwds       = {}
> /usr/lib/python3/dist-packages/pluggy/_hooks.py:501: in __call__
>     return self._hookexec(self.name, self._hookimpls.copy(), kwargs, 
> firstresult)
>         firstresult = False
>         kwargs     = {'item': <Function 
> test_websocket_accept_connection_warns>}
>         self       = <HookCaller 'pytest_runtest_call'>
> /usr/lib/python3/dist-packages/pluggy/_manager.py:119: in _hookexec
>     return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
>         firstresult = False
>         hook_name  = 'pytest_runtest_call'
>         kwargs     = {'item': <Function 
> test_websocket_accept_connection_warns>}
>         methods    = [<HookImpl plugin_name='runner', plugin=<module 
> '_pytest.runner' from 
> '/usr/lib/python3/dist-packages/_pytest/runner.p...ugin=<module 
> '_pytest.unraisableexception' from 
> '/usr/lib/python3/dist-packages/_pytest/unraisableexception.py'>>, ...]
>         self       = <_pytest.config.PytestPluginManager object at 
> 0x7f1fbbb984a0>
> /usr/lib/python3/dist-packages/_pytest/threadexception.py:87: in 
> pytest_runtest_call
>     yield from thread_exception_runtest_hook()
> /usr/lib/python3/dist-packages/_pytest/threadexception.py:63: in 
> thread_exception_runtest_hook
>     yield
>         cm         = <_pytest.threadexception.catch_threading_exception 
> object at 0x7f1fb9706ed0>
> /usr/lib/python3/dist-packages/_pytest/unraisableexception.py:90: in 
> pytest_runtest_call
>     yield from unraisable_exception_runtest_hook()
> /usr/lib/python3/dist-packages/_pytest/unraisableexception.py:65: in 
> unraisable_exception_runtest_hook
>     yield
>         cm         = <_pytest.unraisableexception.catch_unraisable_exception 
> object at 0x7f1fb9706cf0>
> /usr/lib/python3/dist-packages/_pytest/logging.py:839: in pytest_runtest_call
>     yield from self._runtest_for(item, "call")
>         item       = <Function test_websocket_accept_connection_warns>
>         self       = <_pytest.logging.LoggingPlugin object at 0x7f1fbae56240>
> /usr/lib/python3/dist-packages/_pytest/logging.py:822: in _runtest_for
>     yield
>         caplog_handler = <LogCaptureHandler (NOTSET)>
>         item       = <Function test_websocket_accept_connection_warns>
>         log        = ''
>         report_handler = <LogCaptureHandler (NOTSET)>
>         self       = <_pytest.logging.LoggingPlugin object at 0x7f1fbae56240>
>         when       = 'call'
> /usr/lib/python3/dist-packages/_pytest/capture.py:882: in pytest_runtest_call
>     return (yield)
>         item       = <Function test_websocket_accept_connection_warns>
>         self       = <CaptureManager _method='fd' 
> _global_capturing=<MultiCapture out=<FDCapture 1 oldfd=5 _state='suspended' 
> tmpfile=<_io....xtIOWrapper name='/dev/null' mode='r' encoding='utf-8'>> 
> _state='suspended' _in_suspended=False> _capture_fixture=None>
> /usr/lib/python3/dist-packages/_pytest/skipping.py:256: in pytest_runtest_call
>     return (yield)
>         item       = <Function test_websocket_accept_connection_warns>
>         xfailed    = None
> /usr/lib/python3/dist-packages/_pytest/runner.py:178: in pytest_runtest_call
>     raise e
>         item       = <Function test_websocket_accept_connection_warns>
> /usr/lib/python3/dist-packages/_pytest/runner.py:170: in pytest_runtest_call
>     item.runtest()
>         item       = <Function test_websocket_accept_connection_warns>
> /usr/lib/python3/dist-packages/_pytest/python.py:1831: in runtest
>     self.ihook.pytest_pyfunc_call(pyfuncitem=self)
>         self       = <Function test_websocket_accept_connection_warns>
> /usr/lib/python3/dist-packages/pluggy/_hooks.py:501: in __call__
>     return self._hookexec(self.name, self._hookimpls.copy(), kwargs, 
> firstresult)
>         firstresult = True
>         kwargs     = {'pyfuncitem': <Function 
> test_websocket_accept_connection_warns>}
>         self       = <HookCaller 'pytest_pyfunc_call'>
> /usr/lib/python3/dist-packages/pluggy/_manager.py:119: in _hookexec
>     return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
>         firstresult = True
>         hook_name  = 'pytest_pyfunc_call'
>         kwargs     = {'pyfuncitem': <Function 
> test_websocket_accept_connection_warns>}
>         methods    = [<HookImpl plugin_name='python', plugin=<module 
> '_pytest.python' from 
> '/usr/lib/python3/dist-packages/_pytest/python.p...ame='asyncio', 
> plugin=<module 'pytest_asyncio.plugin' from 
> '/usr/lib/python3/dist-packages/pytest_asyncio/plugin.py'>>]
>         self       = <_pytest.config.PytestPluginManager object at 
> 0x7f1fbbb984a0>
> /usr/lib/python3/dist-packages/_pytest/python.py:194: in pytest_pyfunc_call
>     result = testfunction(**testargs)
>         funcargs   = {'event_loop': <_UnixSelectorEventLoop running=False 
> closed=True debug=False>, 'websocket_scope': {'asgi': {}, 'client...ons': {}, 
> 'headers': [(b'User-Agent', b'Hypercorn'), (b'X-Hypercorn', b'Hypercorn'), 
> (b'Referer', b'hypercorn')], ...}}
>         pyfuncitem = <Function test_websocket_accept_connection_warns>
>         testargs   = {'websocket_scope': {'asgi': {}, 'client': ('127.0.0.1', 
> 80), 'extensions': {}, 'headers': [(b'User-Agent', b'Hypercorn'), 
> (b'X-Hypercorn', b'Hypercorn'), (b'Referer', b'hypercorn')], ...}}
>         testfunction = <function test_websocket_accept_connection_warns at 
> 0x7f1fba0db920>
> /usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:478: in inner
>     _loop.run_until_complete(task)
>         _loop      = <_UnixSelectorEventLoop running=False closed=True 
> debug=False>
>         args       = ()
>         coro       = <coroutine object test_websocket_accept_connection_warns 
> at 0x7f1fba5e4c40>
>         func       = <function test_websocket_accept_connection_warns at 
> 0x7f1fba5efec0>
>         kwargs     = {'websocket_scope': {'asgi': {}, 'client': ('127.0.0.1', 
> 80), 'extensions': {}, 'headers': [(b'User-Agent', b'Hypercorn'), 
> (b'X-Hypercorn', b'Hypercorn'), (b'Referer', b'hypercorn')], ...}}
>         pyfuncitem = <Function test_websocket_accept_connection_warns>
>         task       = <Task finished name='Task-80' 
> coro=<test_websocket_accept_connection_warns() done, defined at 
> /<<BUILDDIR>>/quar.../latest/how-to/capture-warnings.html#additional-use-cases-of-warnings-in-tests
>  for alternatives in common use cases.')>
> /usr/lib/python3.12/asyncio/base_events.py:685: in run_until_complete
>     return future.result()
>         future     = <Task finished name='Task-80' 
> coro=<test_websocket_accept_connection_warns() done, defined at 
> /<<BUILDDIR>>/quar.../latest/how-to/capture-warnings.html#additional-use-cases-of-warnings-in-tests
>  for alternatives in common use cases.')>
>         new_task   = False
>         self       = <_UnixSelectorEventLoop running=False closed=True 
> debug=False>
> tests/test_asgi.py:287: in test_websocket_accept_connection_warns
>     with pytest.warns(None):
>         connection = <quart.asgi.ASGIWebsocketConnection object at 
> 0x7f1fb9706720>
>         mock_send  = <function 
> test_websocket_accept_connection_warns.<locals>.mock_send at 0x7f1fba0d8ae0>
>         websocket_scope = {'asgi': {}, 'client': ('127.0.0.1', 80), 
> 'extensions': {}, 'headers': [(b'User-Agent', b'Hypercorn'), (b'X-Hypercorn', 
> b'Hypercorn'), (b'Referer', b'hypercorn')], ...}
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
> self = WarningsChecker(record=True), expected_warning = None, match_expr = 
> None
> 
>     def __init__(
>         self,
>         expected_warning: Optional[
>             Union[Type[Warning], Tuple[Type[Warning], ...]]
>         ] = Warning,
>         match_expr: Optional[Union[str, Pattern[str]]] = None,
>         *,
>         _ispytest: bool = False,
>     ) -> None:
>         check_ispytest(_ispytest)
>         super().__init__(_ispytest=True)
>     
>         msg = "exceptions must be derived from Warning, not %s"
>         if expected_warning is None:
> >           warnings.warn(WARNS_NONE_ARG, stacklevel=4)
> E           pytest.PytestRemovedIn8Warning: Passing None has been deprecated.
> E           See 
> https://docs.pytest.org/en/latest/how-to/capture-warnings.html#additional-use-cases-of-warnings-in-tests
>  for alternatives in common use cases.
> 
> __class__  = <class '_pytest.recwarn.WarningsChecker'>
> _ispytest  = True
> expected_warning = None
> match_expr = None
> msg        = 'exceptions must be derived from Warning, not %s'
> self       = WarningsChecker(record=True)
> 
> /usr/lib/python3/dist-packages/_pytest/recwarn.py:281: PytestRemovedIn8Warning
> ________________________ test_bind_warning[quart.com-1] 
> ________________________
> 
> server_name = 'quart.com', expected = 1
> http_scope = {'asgi': {}, 'client': ('127.0.0.1', 80), 'extensions': {}, 
> 'headers': [(b'User-Agent', b'Hypercorn'), (b'X-Hypercorn', b'Hypercorn'), 
> (b'Referer', b'hypercorn')], ...}
> 
>     @pytest.mark.parametrize(
>         "server_name, expected",
>         [("localhost", 0), ("quart.com", 1)],
>     )
>     async def test_bind_warning(server_name: str, expected: int, http_scope: 
> HTTPScope) -> None:
>         map_ = QuartMap(host_matching=False)
>         request = Request(
>             "GET",
>             "http",
>             "/",
>             b"",
>             Headers([("host", "Localhost")]),
>             "",
>             "1.1",
>             http_scope,
>             send_push_promise=no_op_push,
>         )
> >       with pytest.warns(None) as record:
> 
> expected   = 1
> http_scope = {'asgi': {}, 'client': ('127.0.0.1', 80), 'extensions': {}, 
> 'headers': [(b'User-Agent', b'Hypercorn'), (b'X-Hypercorn', b'Hypercorn'), 
> (b'Referer', b'hypercorn')], ...}
> map_       = QuartMap([])
> request    = <Request 'http://localhost/' [GET]>
> server_name = 'quart.com'
> 
> tests/test_routing.py:29: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> /usr/lib/python3/dist-packages/_pytest/recwarn.py:281: in __init__
>     warnings.warn(WARNS_NONE_ARG, stacklevel=4)
>         __class__  = <class '_pytest.recwarn.WarningsChecker'>
>         _ispytest  = True
>         expected_warning = None
>         match_expr = None
>         msg        = 'exceptions must be derived from Warning, not %s'
>         self       = WarningsChecker(record=True)
> /usr/lib/python3/dist-packages/_pytest/runner.py:342: in from_call
>     result: Optional[TResult] = func()
>         cls        = <class '_pytest.runner.CallInfo'>
>         duration   = 0.00036152500251773745
>         excinfo    = <ExceptionInfo PytestRemovedIn8Warning('Passing None has 
> been deprecated.\nSee 
> https://docs.pytest.org/en/latest/how-to/capture-warnings.html#additional-use-cases-of-warnings-in-tests
>  for alternatives in common use cases.') tblen=68>
>         func       = <function call_runtest_hook.<locals>.<lambda> at 
> 0x7f1fbbab6200>
>         precise_start = 45849.087438992
>         precise_stop = 45849.087800517
>         reraise    = (<class '_pytest.outcomes.Exit'>, <class 
> 'KeyboardInterrupt'>)
>         result     = None
>         start      = 1710275655.06736
>         stop       = 1710275655.067722
>         when       = 'call'
> /usr/lib/python3/dist-packages/_pytest/runner.py:263: in <lambda>
>     lambda: ihook(item=item, **kwds), when=when, reraise=reraise
>         ihook      = <HookCaller 'pytest_runtest_call'>
>         item       = <Function test_bind_warning[localhost-0]>
>         kwds       = {}
> /usr/lib/python3/dist-packages/pluggy/_hooks.py:501: in __call__
>     return self._hookexec(self.name, self._hookimpls.copy(), kwargs, 
> firstresult)
>         firstresult = False
>         kwargs     = {'item': <Function test_bind_warning[localhost-0]>}
>         self       = <HookCaller 'pytest_runtest_call'>
> /usr/lib/python3/dist-packages/pluggy/_manager.py:119: in _hookexec
>     return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
>         firstresult = False
>         hook_name  = 'pytest_runtest_call'
>         kwargs     = {'item': <Function test_bind_warning[localhost-0]>}
>         methods    = [<HookImpl plugin_name='runner', plugin=<module 
> '_pytest.runner' from 
> '/usr/lib/python3/dist-packages/_pytest/runner.p...ugin=<module 
> '_pytest.unraisableexception' from 
> '/usr/lib/python3/dist-packages/_pytest/unraisableexception.py'>>, ...]
>         self       = <_pytest.config.PytestPluginManager object at 
> 0x7f1fbbb984a0>
> /usr/lib/python3/dist-packages/_pytest/threadexception.py:87: in 
> pytest_runtest_call
>     yield from thread_exception_runtest_hook()
> /usr/lib/python3/dist-packages/_pytest/threadexception.py:63: in 
> thread_exception_runtest_hook
>     yield
>         cm         = <_pytest.threadexception.catch_threading_exception 
> object at 0x7f1fb96051c0>
> /usr/lib/python3/dist-packages/_pytest/unraisableexception.py:90: in 
> pytest_runtest_call
>     yield from unraisable_exception_runtest_hook()
> /usr/lib/python3/dist-packages/_pytest/unraisableexception.py:65: in 
> unraisable_exception_runtest_hook
>     yield
>         cm         = <_pytest.unraisableexception.catch_unraisable_exception 
> object at 0x7f1fb9605130>
> /usr/lib/python3/dist-packages/_pytest/logging.py:839: in pytest_runtest_call
>     yield from self._runtest_for(item, "call")
>         item       = <Function test_bind_warning[localhost-0]>
>         self       = <_pytest.logging.LoggingPlugin object at 0x7f1fbae56240>
> /usr/lib/python3/dist-packages/_pytest/logging.py:822: in _runtest_for
>     yield
>         caplog_handler = <LogCaptureHandler (NOTSET)>
>         item       = <Function test_bind_warning[localhost-0]>
>         log        = ''
>         report_handler = <LogCaptureHandler (NOTSET)>
>         self       = <_pytest.logging.LoggingPlugin object at 0x7f1fbae56240>
>         when       = 'call'
> /usr/lib/python3/dist-packages/_pytest/capture.py:882: in pytest_runtest_call
>     return (yield)
>         item       = <Function test_bind_warning[localhost-0]>
>         self       = <CaptureManager _method='fd' 
> _global_capturing=<MultiCapture out=<FDCapture 1 oldfd=5 _state='suspended' 
> tmpfile=<_io....xtIOWrapper name='/dev/null' mode='r' encoding='utf-8'>> 
> _state='suspended' _in_suspended=False> _capture_fixture=None>
> /usr/lib/python3/dist-packages/_pytest/skipping.py:256: in pytest_runtest_call
>     return (yield)
>         item       = <Function test_bind_warning[localhost-0]>
>         xfailed    = None
> /usr/lib/python3/dist-packages/_pytest/runner.py:178: in pytest_runtest_call
>     raise e
>         item       = <Function test_bind_warning[localhost-0]>
> /usr/lib/python3/dist-packages/_pytest/runner.py:170: in pytest_runtest_call
>     item.runtest()
>         item       = <Function test_bind_warning[localhost-0]>
> /usr/lib/python3/dist-packages/_pytest/python.py:1831: in runtest
>     self.ihook.pytest_pyfunc_call(pyfuncitem=self)
>         self       = <Function test_bind_warning[localhost-0]>
> /usr/lib/python3/dist-packages/pluggy/_hooks.py:501: in __call__
>     return self._hookexec(self.name, self._hookimpls.copy(), kwargs, 
> firstresult)
>         firstresult = True
>         kwargs     = {'pyfuncitem': <Function test_bind_warning[localhost-0]>}
>         self       = <HookCaller 'pytest_pyfunc_call'>
> /usr/lib/python3/dist-packages/pluggy/_manager.py:119: in _hookexec
>     return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
>         firstresult = True
>         hook_name  = 'pytest_pyfunc_call'
>         kwargs     = {'pyfuncitem': <Function test_bind_warning[localhost-0]>}
>         methods    = [<HookImpl plugin_name='python', plugin=<module 
> '_pytest.python' from 
> '/usr/lib/python3/dist-packages/_pytest/python.p...ame='asyncio', 
> plugin=<module 'pytest_asyncio.plugin' from 
> '/usr/lib/python3/dist-packages/pytest_asyncio/plugin.py'>>]
>         self       = <_pytest.config.PytestPluginManager object at 
> 0x7f1fbbb984a0>
> /usr/lib/python3/dist-packages/_pytest/python.py:194: in pytest_pyfunc_call
>     result = testfunction(**testargs)
>         funcargs   = {'event_loop': <_UnixSelectorEventLoop running=False 
> closed=True debug=False>, 'expected': 0, 'http_scope': {'asgi': {...r-Agent', 
> b'Hypercorn'), (b'X-Hypercorn', b'Hypercorn'), (b'Referer', b'hypercorn')], 
> ...}, 'server_name': 'localhost'}
>         pyfuncitem = <Function test_bind_warning[localhost-0]>
>         testargs   = {'expected': 0, 'http_scope': {'asgi': {}, 'client': 
> ('127.0.0.1', 80), 'extensions': {}, 'headers': [(b'User-Agent', 
> b'Hypercorn'), (b'X-Hypercorn', b'Hypercorn'), (b'Referer', b'hypercorn')], 
> ...}, 'server_name': 'localhost'}
>         testfunction = <function test_bind_warning at 0x7f1fba0f1800>
> /usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:478: in inner
>     _loop.run_until_complete(task)
>         _loop      = <_UnixSelectorEventLoop running=False closed=True 
> debug=False>
>         args       = ()
>         coro       = <coroutine object test_bind_warning at 0x7f1fba16d540>
>         func       = <function test_bind_warning at 0x7f1fba4a2700>
>         kwargs     = {'expected': 0, 'http_scope': {'asgi': {}, 'client': 
> ('127.0.0.1', 80), 'extensions': {}, 'headers': [(b'User-Agent', 
> b'Hypercorn'), (b'X-Hypercorn', b'Hypercorn'), (b'Referer', b'hypercorn')], 
> ...}, 'server_name': 'localhost'}
>         pyfuncitem = <Function test_bind_warning[localhost-0]>
>         task       = <Task finished name='Task-329' coro=<test_bind_warning() 
> done, defined at 
> /<<PKGBUILDDIR>>/.pybuild/cp.../latest/how-to/capture-warnings.html#additional-use-cases-of-warnings-in-tests
>  for alternatives in common use cases.')>
> /usr/lib/python3.12/asyncio/base_events.py:685: in run_until_complete
>     return future.result()
>         future     = <Task finished name='Task-329' coro=<test_bind_warning() 
> done, defined at 
> /<<PKGBUILDDIR>>/.pybuild/cp.../latest/how-to/capture-warnings.html#additional-use-cases-of-warnings-in-tests
>  for alternatives in common use cases.')>
>         new_task   = False
>         self       = <_UnixSelectorEventLoop running=False closed=True 
> debug=False>
> tests/test_routing.py:29: in test_bind_warning
>     with pytest.warns(None) as record:
>         expected   = 0
>         http_scope = {'asgi': {}, 'client': ('127.0.0.1', 80), 'extensions': 
> {}, 'headers': [(b'User-Agent', b'Hypercorn'), (b'X-Hypercorn', 
> b'Hypercorn'), (b'Referer', b'hypercorn')], ...}
>         map_       = QuartMap([])
>         request    = <Request 'http://localhost/' [GET]>
>         server_name = 'localhost'
> /usr/lib/python3/dist-packages/_pytest/recwarn.py:281: in __init__
>     warnings.warn(WARNS_NONE_ARG, stacklevel=4)
>         __class__  = <class '_pytest.recwarn.WarningsChecker'>
>         _ispytest  = True
>         expected_warning = None
>         match_expr = None
>         msg        = 'exceptions must be derived from Warning, not %s'
>         self       = WarningsChecker(record=True)
> /usr/lib/python3/dist-packages/_pytest/runner.py:342: in from_call
>     result: Optional[TResult] = func()
>         cls        = <class '_pytest.runner.CallInfo'>
>         duration   = 0.001240888006577734
>         excinfo    = <ExceptionInfo PytestRemovedIn8Warning('Passing None has 
> been deprecated.\nSee 
> https://docs.pytest.org/en/latest/how-to/capture-warnings.html#additional-use-cases-of-warnings-in-tests
>  for alternatives in common use cases.') tblen=34>
>         func       = <function call_runtest_hook.<locals>.<lambda> at 
> 0x7f1fba0d9c60>
>         precise_start = 45847.096292897
>         precise_stop = 45847.097533785
>         reraise    = (<class '_pytest.outcomes.Exit'>, <class 
> 'KeyboardInterrupt'>)
>         result     = None
>         start      = 1710275653.0762138
>         stop       = 1710275653.0774555
>         when       = 'call'
> /usr/lib/python3/dist-packages/_pytest/runner.py:263: in <lambda>
>     lambda: ihook(item=item, **kwds), when=when, reraise=reraise
>         ihook      = <HookCaller 'pytest_runtest_call'>
>         item       = <Function test_websocket_accept_connection_warns>
>         kwds       = {}
> /usr/lib/python3/dist-packages/pluggy/_hooks.py:501: in __call__
>     return self._hookexec(self.name, self._hookimpls.copy(), kwargs, 
> firstresult)
>         firstresult = False
>         kwargs     = {'item': <Function 
> test_websocket_accept_connection_warns>}
>         self       = <HookCaller 'pytest_runtest_call'>
> /usr/lib/python3/dist-packages/pluggy/_manager.py:119: in _hookexec
>     return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
>         firstresult = False
>         hook_name  = 'pytest_runtest_call'
>         kwargs     = {'item': <Function 
> test_websocket_accept_connection_warns>}
>         methods    = [<HookImpl plugin_name='runner', plugin=<module 
> '_pytest.runner' from 
> '/usr/lib/python3/dist-packages/_pytest/runner.p...ugin=<module 
> '_pytest.unraisableexception' from 
> '/usr/lib/python3/dist-packages/_pytest/unraisableexception.py'>>, ...]
>         self       = <_pytest.config.PytestPluginManager object at 
> 0x7f1fbbb984a0>
> /usr/lib/python3/dist-packages/_pytest/threadexception.py:87: in 
> pytest_runtest_call
>     yield from thread_exception_runtest_hook()
> /usr/lib/python3/dist-packages/_pytest/threadexception.py:63: in 
> thread_exception_runtest_hook
>     yield
>         cm         = <_pytest.threadexception.catch_threading_exception 
> object at 0x7f1fb9706ed0>
> /usr/lib/python3/dist-packages/_pytest/unraisableexception.py:90: in 
> pytest_runtest_call
>     yield from unraisable_exception_runtest_hook()
> /usr/lib/python3/dist-packages/_pytest/unraisableexception.py:65: in 
> unraisable_exception_runtest_hook
>     yield
>         cm         = <_pytest.unraisableexception.catch_unraisable_exception 
> object at 0x7f1fb9706cf0>
> /usr/lib/python3/dist-packages/_pytest/logging.py:839: in pytest_runtest_call
>     yield from self._runtest_for(item, "call")
>         item       = <Function test_websocket_accept_connection_warns>
>         self       = <_pytest.logging.LoggingPlugin object at 0x7f1fbae56240>
> /usr/lib/python3/dist-packages/_pytest/logging.py:822: in _runtest_for
>     yield
>         caplog_handler = <LogCaptureHandler (NOTSET)>
>         item       = <Function test_websocket_accept_connection_warns>
>         log        = ''
>         report_handler = <LogCaptureHandler (NOTSET)>
>         self       = <_pytest.logging.LoggingPlugin object at 0x7f1fbae56240>
>         when       = 'call'
> /usr/lib/python3/dist-packages/_pytest/capture.py:882: in pytest_runtest_call
>     return (yield)
>         item       = <Function test_websocket_accept_connection_warns>
>         self       = <CaptureManager _method='fd' 
> _global_capturing=<MultiCapture out=<FDCapture 1 oldfd=5 _state='suspended' 
> tmpfile=<_io....xtIOWrapper name='/dev/null' mode='r' encoding='utf-8'>> 
> _state='suspended' _in_suspended=False> _capture_fixture=None>
> /usr/lib/python3/dist-packages/_pytest/skipping.py:256: in pytest_runtest_call
>     return (yield)
>         item       = <Function test_websocket_accept_connection_warns>
>         xfailed    = None
> /usr/lib/python3/dist-packages/_pytest/runner.py:178: in pytest_runtest_call
>     raise e
>         item       = <Function test_websocket_accept_connection_warns>
> /usr/lib/python3/dist-packages/_pytest/runner.py:170: in pytest_runtest_call
>     item.runtest()
>         item       = <Function test_websocket_accept_connection_warns>
> /usr/lib/python3/dist-packages/_pytest/python.py:1831: in runtest
>     self.ihook.pytest_pyfunc_call(pyfuncitem=self)
>         self       = <Function test_websocket_accept_connection_warns>
> /usr/lib/python3/dist-packages/pluggy/_hooks.py:501: in __call__
>     return self._hookexec(self.name, self._hookimpls.copy(), kwargs, 
> firstresult)
>         firstresult = True
>         kwargs     = {'pyfuncitem': <Function 
> test_websocket_accept_connection_warns>}
>         self       = <HookCaller 'pytest_pyfunc_call'>
> /usr/lib/python3/dist-packages/pluggy/_manager.py:119: in _hookexec
>     return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
>         firstresult = True
>         hook_name  = 'pytest_pyfunc_call'
>         kwargs     = {'pyfuncitem': <Function 
> test_websocket_accept_connection_warns>}
>         methods    = [<HookImpl plugin_name='python', plugin=<module 
> '_pytest.python' from 
> '/usr/lib/python3/dist-packages/_pytest/python.p...ame='asyncio', 
> plugin=<module 'pytest_asyncio.plugin' from 
> '/usr/lib/python3/dist-packages/pytest_asyncio/plugin.py'>>]
>         self       = <_pytest.config.PytestPluginManager object at 
> 0x7f1fbbb984a0>
> /usr/lib/python3/dist-packages/_pytest/python.py:194: in pytest_pyfunc_call
>     result = testfunction(**testargs)
>         funcargs   = {'event_loop': <_UnixSelectorEventLoop running=False 
> closed=True debug=False>, 'websocket_scope': {'asgi': {}, 'client...ons': {}, 
> 'headers': [(b'User-Agent', b'Hypercorn'), (b'X-Hypercorn', b'Hypercorn'), 
> (b'Referer', b'hypercorn')], ...}}
>         pyfuncitem = <Function test_websocket_accept_connection_warns>
>         testargs   = {'websocket_scope': {'asgi': {}, 'client': ('127.0.0.1', 
> 80), 'extensions': {}, 'headers': [(b'User-Agent', b'Hypercorn'), 
> (b'X-Hypercorn', b'Hypercorn'), (b'Referer', b'hypercorn')], ...}}
>         testfunction = <function test_websocket_accept_connection_warns at 
> 0x7f1fba0db920>
> /usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:478: in inner
>     _loop.run_until_complete(task)
>         _loop      = <_UnixSelectorEventLoop running=False closed=True 
> debug=False>
>         args       = ()
>         coro       = <coroutine object test_websocket_accept_connection_warns 
> at 0x7f1fba5e4c40>
>         func       = <function test_websocket_accept_connection_warns at 
> 0x7f1fba5efec0>
>         kwargs     = {'websocket_scope': {'asgi': {}, 'client': ('127.0.0.1', 
> 80), 'extensions': {}, 'headers': [(b'User-Agent', b'Hypercorn'), 
> (b'X-Hypercorn', b'Hypercorn'), (b'Referer', b'hypercorn')], ...}}
>         pyfuncitem = <Function test_websocket_accept_connection_warns>
>         task       = <Task finished name='Task-80' 
> coro=<test_websocket_accept_connection_warns() done, defined at 
> /<<BUILDDIR>>/quar.../latest/how-to/capture-warnings.html#additional-use-cases-of-warnings-in-tests
>  for alternatives in common use cases.')>
> /usr/lib/python3.12/asyncio/base_events.py:685: in run_until_complete
>     return future.result()
>         future     = <Task finished name='Task-80' 
> coro=<test_websocket_accept_connection_warns() done, defined at 
> /<<BUILDDIR>>/quar.../latest/how-to/capture-warnings.html#additional-use-cases-of-warnings-in-tests
>  for alternatives in common use cases.')>
>         new_task   = False
>         self       = <_UnixSelectorEventLoop running=False closed=True 
> debug=False>
> tests/test_asgi.py:287: in test_websocket_accept_connection_warns
>     with pytest.warns(None):
>         connection = <quart.asgi.ASGIWebsocketConnection object at 
> 0x7f1fb9706720>
>         mock_send  = <function 
> test_websocket_accept_connection_warns.<locals>.mock_send at 0x7f1fba0d8ae0>
>         websocket_scope = {'asgi': {}, 'client': ('127.0.0.1', 80), 
> 'extensions': {}, 'headers': [(b'User-Agent', b'Hypercorn'), (b'X-Hypercorn', 
> b'Hypercorn'), (b'Referer', b'hypercorn')], ...}
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
> self = WarningsChecker(record=True), expected_warning = None, match_expr = 
> None
> 
>     def __init__(
>         self,
>         expected_warning: Optional[
>             Union[Type[Warning], Tuple[Type[Warning], ...]]
>         ] = Warning,
>         match_expr: Optional[Union[str, Pattern[str]]] = None,
>         *,
>         _ispytest: bool = False,
>     ) -> None:
>         check_ispytest(_ispytest)
>         super().__init__(_ispytest=True)
>     
>         msg = "exceptions must be derived from Warning, not %s"
>         if expected_warning is None:
> >           warnings.warn(WARNS_NONE_ARG, stacklevel=4)
> E           pytest.PytestRemovedIn8Warning: Passing None has been deprecated.
> E           See 
> https://docs.pytest.org/en/latest/how-to/capture-warnings.html#additional-use-cases-of-warnings-in-tests
>  for alternatives in common use cases.
> 
> __class__  = <class '_pytest.recwarn.WarningsChecker'>
> _ispytest  = True
> expected_warning = None
> match_expr = None
> msg        = 'exceptions must be derived from Warning, not %s'
> self       = WarningsChecker(record=True)
> 
> /usr/lib/python3/dist-packages/_pytest/recwarn.py:281: PytestRemovedIn8Warning
> =============================== warnings summary 
> ===============================
> tests/test_helpers.py::test_send_file_path
> tests/test_helpers.py::test_send_file_as_attachment
> tests/test_helpers.py::test_send_file_as_attachment_name
> tests/test_helpers.py::test_send_file_mimetype
> tests/test_helpers.py::test_send_file_last_modified
> tests/test_helpers.py::test_send_file_last_modified_override
> tests/test_helpers.py::test_send_file_max_age
> tests/test_static_hosting.py::test_host_matching
> tests/test_static_hosting.py::test_host_matching
>   /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_quart/build/quart/helpers.py:351: 
> DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled 
> for removal in a future version. Use timezone-aware objects to represent 
> datetimes in UTC: datetime.datetime.now(datetime.UTC).
>     response.expires = datetime.utcnow() + timedelta(seconds=cache_timeout)
> 
> -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
> =========================== short test summary info 
> ============================
> FAILED tests/test_asgi.py::test_websocket_accept_connection_warns - 
> pytest.Py...
> FAILED tests/test_routing.py::test_bind_warning[localhost-0] - 
> pytest.PytestR...
> FAILED tests/test_routing.py::test_bind_warning[quart.com-1] - 
> pytest.PytestR...
> ================== 3 failed, 247 passed, 9 warnings in 5.10s 
> ===================
> E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_quart/build; python3.12 -m pytest 
> tests
> I: pybuild base:305: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_quart/build; 
> python3.11 -m pytest tests
> ============================= test session starts 
> ==============================
> platform linux -- Python 3.11.8, pytest-8.0.2, pluggy-1.4.0
> rootdir: /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_quart/build
> configfile: pyproject.toml
> plugins: cov-4.1.0, asyncio-0.20.3, hypothesis-6.98.15
> asyncio: mode=Mode.AUTO
> collected 250 items
> 
> tests/test_app.py .......................................                [ 
> 15%]
> tests/test_asgi.py ....................F......                           [ 
> 26%]
> tests/test_background_tasks.py ...                                       [ 
> 27%]
> tests/test_basic.py ..................                                   [ 
> 34%]
> tests/test_blueprints.py ........................                        [ 
> 44%]
> tests/test_cli.py .......                                                [ 
> 47%]
> tests/test_ctx.py ............                                           [ 
> 52%]
> tests/test_debug.py .                                                    [ 
> 52%]
> tests/test_exceptions.py ...                                             [ 
> 53%]
> tests/test_helpers.py ......................                             [ 
> 62%]
> tests/test_routing.py FF                                                 [ 
> 63%]
> tests/test_sessions.py ....                                              [ 
> 64%]
> tests/test_static_hosting.py .                                           [ 
> 65%]
> tests/test_sync.py ..                                                    [ 
> 66%]
> tests/test_templating.py .......                                         [ 
> 68%]
> tests/test_testing.py ..................................                 [ 
> 82%]
> tests/test_utils.py ..                                                   [ 
> 83%]
> tests/test_views.py ...                                                  [ 
> 84%]
> tests/wrappers/test_base.py ......                                       [ 
> 86%]
> tests/wrappers/test_request.py ..........                                [ 
> 90%]
> tests/wrappers/test_response.py .......................                  
> [100%]
> 
> =================================== FAILURES 
> ===================================
> ____________________ test_websocket_accept_connection_warns 
> ____________________
> 
> websocket_scope = {'asgi': {}, 'client': ('127.0.0.1', 80), 'extensions': {}, 
> 'headers': [(b'User-Agent', b'Hypercorn'), (b'X-Hypercorn', b'Hypercorn'), 
> (b'Referer', b'hypercorn')], ...}
> 
>     async def test_websocket_accept_connection_warns(websocket_scope: 
> WebsocketScope) -> None:
>         connection = ASGIWebsocketConnection(Quart(__name__), websocket_scope)
>     
>         async def mock_send(message: ASGISendEvent) -> None:
>             pass
>     
> >       with pytest.warns(None):
> 
> connection = <quart.asgi.ASGIWebsocketConnection object at 0x7f7bda64b1d0>
> mock_send  = <function 
> test_websocket_accept_connection_warns.<locals>.mock_send at 0x7f7bda5ea660>
> websocket_scope = {'asgi': {}, 'client': ('127.0.0.1', 80), 'extensions': {}, 
> 'headers': [(b'User-Agent', b'Hypercorn'), (b'X-Hypercorn', b'Hypercorn'), 
> (b'Referer', b'hypercorn')], ...}
> 
> tests/test_asgi.py:287: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
> self = WarningsChecker(record=True), expected_warning = None, match_expr = 
> None
> 
>     def __init__(
>         self,
>         expected_warning: Optional[
>             Union[Type[Warning], Tuple[Type[Warning], ...]]
>         ] = Warning,
>         match_expr: Optional[Union[str, Pattern[str]]] = None,
>         *,
>         _ispytest: bool = False,
>     ) -> None:
>         check_ispytest(_ispytest)
>         super().__init__(_ispytest=True)
>     
>         msg = "exceptions must be derived from Warning, not %s"
>         if expected_warning is None:
> >           warnings.warn(WARNS_NONE_ARG, stacklevel=4)
> E           pytest.PytestRemovedIn8Warning: Passing None has been deprecated.
> E           See 
> https://docs.pytest.org/en/latest/how-to/capture-warnings.html#additional-use-cases-of-warnings-in-tests
>  for alternatives in common use cases.
> 
> __class__  = <class '_pytest.recwarn.WarningsChecker'>
> _ispytest  = True
> expected_warning = None
> match_expr = None
> msg        = 'exceptions must be derived from Warning, not %s'
> self       = WarningsChecker(record=True)
> 
> /usr/lib/python3/dist-packages/_pytest/recwarn.py:281: PytestRemovedIn8Warning
> ________________________ test_bind_warning[localhost-0] 
> ________________________
> 
> server_name = 'localhost', expected = 0
> http_scope = {'asgi': {}, 'client': ('127.0.0.1', 80), 'extensions': {}, 
> 'headers': [(b'User-Agent', b'Hypercorn'), (b'X-Hypercorn', b'Hypercorn'), 
> (b'Referer', b'hypercorn')], ...}
> 
>     @pytest.mark.parametrize(
>         "server_name, expected",
>         [("localhost", 0), ("quart.com", 1)],
>     )
>     async def test_bind_warning(server_name: str, expected: int, http_scope: 
> HTTPScope) -> None:
>         map_ = QuartMap(host_matching=False)
>         request = Request(
>             "GET",
>             "http",
>             "/",
>             b"",
>             Headers([("host", "Localhost")]),
>             "",
>             "1.1",
>             http_scope,
>             send_push_promise=no_op_push,
>         )
> >       with pytest.warns(None) as record:
> 
> expected   = 0
> http_scope = {'asgi': {}, 'client': ('127.0.0.1', 80), 'extensions': {}, 
> 'headers': [(b'User-Agent', b'Hypercorn'), (b'X-Hypercorn', b'Hypercorn'), 
> (b'Referer', b'hypercorn')], ...}
> map_       = QuartMap([])
> request    = <Request 'http://localhost/' [GET]>
> server_name = 'localhost'
> 
> tests/test_routing.py:29: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> /usr/lib/python3/dist-packages/_pytest/recwarn.py:281: in __init__
>     warnings.warn(WARNS_NONE_ARG, stacklevel=4)
>         __class__  = <class '_pytest.recwarn.WarningsChecker'>
>         _ispytest  = True
>         expected_warning = None
>         match_expr = None
>         msg        = 'exceptions must be derived from Warning, not %s'
>         self       = WarningsChecker(record=True)
> /usr/lib/python3/dist-packages/_pytest/runner.py:342: in from_call
>     result: Optional[TResult] = func()
>         cls        = <class '_pytest.runner.CallInfo'>
>         duration   = 0.001215306001540739
>         excinfo    = <ExceptionInfo PytestRemovedIn8Warning('Passing None has 
> been deprecated.\nSee 
> https://docs.pytest.org/en/latest/how-to/capture-warnings.html#additional-use-cases-of-warnings-in-tests
>  for alternatives in common use cases.') tblen=34>
>         func       = <function call_runtest_hook.<locals>.<lambda> at 
> 0x7f7bdc52c860>
>         precise_start = 45852.935502155
>         precise_stop = 45852.936717461
>         reraise    = (<class '_pytest.outcomes.Exit'>, <class 
> 'KeyboardInterrupt'>)
>         result     = None
>         start      = 1710275658.9154232
>         stop       = 1710275658.916639
>         when       = 'call'
> /usr/lib/python3/dist-packages/_pytest/runner.py:263: in <lambda>
>     lambda: ihook(item=item, **kwds), when=when, reraise=reraise
>         ihook      = <HookCaller 'pytest_runtest_call'>
>         item       = <Function test_websocket_accept_connection_warns>
>         kwds       = {}
> /usr/lib/python3/dist-packages/pluggy/_hooks.py:501: in __call__
>     return self._hookexec(self.name, self._hookimpls.copy(), kwargs, 
> firstresult)
>         firstresult = False
>         kwargs     = {'item': <Function 
> test_websocket_accept_connection_warns>}
>         self       = <HookCaller 'pytest_runtest_call'>
> /usr/lib/python3/dist-packages/pluggy/_manager.py:119: in _hookexec
>     return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
>         firstresult = False
>         hook_name  = 'pytest_runtest_call'
>         kwargs     = {'item': <Function 
> test_websocket_accept_connection_warns>}
>         methods    = [<HookImpl plugin_name='runner', plugin=<module 
> '_pytest.runner' from 
> '/usr/lib/python3/dist-packages/_pytest/runner.p...ugin=<module 
> '_pytest.unraisableexception' from 
> '/usr/lib/python3/dist-packages/_pytest/unraisableexception.py'>>, ...]
>         self       = <_pytest.config.PytestPluginManager object at 
> 0x7f7bdcaac150>
> /usr/lib/python3/dist-packages/_pytest/threadexception.py:87: in 
> pytest_runtest_call
>     yield from thread_exception_runtest_hook()
> /usr/lib/python3/dist-packages/_pytest/threadexception.py:63: in 
> thread_exception_runtest_hook
>     yield
>         cm         = <_pytest.threadexception.catch_threading_exception 
> object at 0x7f7bda634ed0>
> /usr/lib/python3/dist-packages/_pytest/unraisableexception.py:90: in 
> pytest_runtest_call
>     yield from unraisable_exception_runtest_hook()
> /usr/lib/python3/dist-packages/_pytest/unraisableexception.py:65: in 
> unraisable_exception_runtest_hook
>     yield
>         cm         = <_pytest.unraisableexception.catch_unraisable_exception 
> object at 0x7f7bda635e10>
> /usr/lib/python3/dist-packages/_pytest/logging.py:839: in pytest_runtest_call
>     yield from self._runtest_for(item, "call")
>         item       = <Function test_websocket_accept_connection_warns>
>         self       = <_pytest.logging.LoggingPlugin object at 0x7f7bdc0ed090>
> /usr/lib/python3/dist-packages/_pytest/logging.py:822: in _runtest_for
>     yield
>         caplog_handler = <LogCaptureHandler (NOTSET)>
>         item       = <Function test_websocket_accept_connection_warns>
>         log        = ''
>         report_handler = <LogCaptureHandler (NOTSET)>
>         self       = <_pytest.logging.LoggingPlugin object at 0x7f7bdc0ed090>
>         when       = 'call'
> /usr/lib/python3/dist-packages/_pytest/capture.py:882: in pytest_runtest_call
>     return (yield)
>         item       = <Function test_websocket_accept_connection_warns>
>         self       = <CaptureManager _method='fd' 
> _global_capturing=<MultiCapture out=<FDCapture 1 oldfd=5 _state='suspended' 
> tmpfile=<_io....xtIOWrapper name='/dev/null' mode='r' encoding='utf-8'>> 
> _state='suspended' _in_suspended=False> _capture_fixture=None>
> /usr/lib/python3/dist-packages/_pytest/skipping.py:256: in pytest_runtest_call
>     return (yield)
>         item       = <Function test_websocket_accept_connection_warns>
>         xfailed    = None
> /usr/lib/python3/dist-packages/_pytest/runner.py:178: in pytest_runtest_call
>     raise e
>         item       = <Function test_websocket_accept_connection_warns>
> /usr/lib/python3/dist-packages/_pytest/runner.py:170: in pytest_runtest_call
>     item.runtest()
>         item       = <Function test_websocket_accept_connection_warns>
> /usr/lib/python3/dist-packages/_pytest/python.py:1831: in runtest
>     self.ihook.pytest_pyfunc_call(pyfuncitem=self)
>         self       = <Function test_websocket_accept_connection_warns>
> /usr/lib/python3/dist-packages/pluggy/_hooks.py:501: in __call__
>     return self._hookexec(self.name, self._hookimpls.copy(), kwargs, 
> firstresult)
>         firstresult = True
>         kwargs     = {'pyfuncitem': <Function 
> test_websocket_accept_connection_warns>}
>         self       = <HookCaller 'pytest_pyfunc_call'>
> /usr/lib/python3/dist-packages/pluggy/_manager.py:119: in _hookexec
>     return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
>         firstresult = True
>         hook_name  = 'pytest_pyfunc_call'
>         kwargs     = {'pyfuncitem': <Function 
> test_websocket_accept_connection_warns>}
>         methods    = [<HookImpl plugin_name='python', plugin=<module 
> '_pytest.python' from 
> '/usr/lib/python3/dist-packages/_pytest/python.p...ame='asyncio', 
> plugin=<module 'pytest_asyncio.plugin' from 
> '/usr/lib/python3/dist-packages/pytest_asyncio/plugin.py'>>]
>         self       = <_pytest.config.PytestPluginManager object at 
> 0x7f7bdcaac150>
> /usr/lib/python3/dist-packages/_pytest/python.py:194: in pytest_pyfunc_call
>     result = testfunction(**testargs)
>         funcargs   = {'event_loop': <_UnixSelectorEventLoop running=False 
> closed=True debug=False>, 'websocket_scope': {'asgi': {}, 'client...ons': {}, 
> 'headers': [(b'User-Agent', b'Hypercorn'), (b'X-Hypercorn', b'Hypercorn'), 
> (b'Referer', b'hypercorn')], ...}}
>         pyfuncitem = <Function test_websocket_accept_connection_warns>
>         testargs   = {'websocket_scope': {'asgi': {}, 'client': ('127.0.0.1', 
> 80), 'extensions': {}, 'headers': [(b'User-Agent', b'Hypercorn'), 
> (b'X-Hypercorn', b'Hypercorn'), (b'Referer', b'hypercorn')], ...}}
>         testfunction = <function test_websocket_accept_connection_warns at 
> 0x7f7bda5e93a0>
> /usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:478: in inner
>     _loop.run_until_complete(task)
>         _loop      = <_UnixSelectorEventLoop running=False closed=True 
> debug=False>
>         args       = ()
>         coro       = <coroutine object test_websocket_accept_connection_warns 
> at 0x7f7bdab00040>
>         func       = <function test_websocket_accept_connection_warns at 
> 0x7f7bdab08c20>
>         kwargs     = {'websocket_scope': {'asgi': {}, 'client': ('127.0.0.1', 
> 80), 'extensions': {}, 'headers': [(b'User-Agent', b'Hypercorn'), 
> (b'X-Hypercorn', b'Hypercorn'), (b'Referer', b'hypercorn')], ...}}
>         pyfuncitem = <Function test_websocket_accept_connection_warns>
>         task       = <Task finished name='Task-97' 
> coro=<test_websocket_accept_connection_warns() done, defined at 
> /<<BUILDDIR>>/quar.../latest/how-to/capture-warnings.html#additional-use-cases-of-warnings-in-tests
>  for alternatives in common use cases.')>
> /usr/lib/python3.11/asyncio/base_events.py:654: in run_until_complete
>     return future.result()
>         future     = <Task finished name='Task-97' 
> coro=<test_websocket_accept_connection_warns() done, defined at 
> /<<BUILDDIR>>/quar.../latest/how-to/capture-warnings.html#additional-use-cases-of-warnings-in-tests
>  for alternatives in common use cases.')>
>         new_task   = False
>         self       = <_UnixSelectorEventLoop running=False closed=True 
> debug=False>
> tests/test_asgi.py:287: in test_websocket_accept_connection_warns
>     with pytest.warns(None):
>         connection = <quart.asgi.ASGIWebsocketConnection object at 
> 0x7f7bda64b1d0>
>         mock_send  = <function 
> test_websocket_accept_connection_warns.<locals>.mock_send at 0x7f7bda5ea660>
>         websocket_scope = {'asgi': {}, 'client': ('127.0.0.1', 80), 
> 'extensions': {}, 'headers': [(b'User-Agent', b'Hypercorn'), (b'X-Hypercorn', 
> b'Hypercorn'), (b'Referer', b'hypercorn')], ...}
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
> self = WarningsChecker(record=True), expected_warning = None, match_expr = 
> None
> 
>     def __init__(
>         self,
>         expected_warning: Optional[
>             Union[Type[Warning], Tuple[Type[Warning], ...]]
>         ] = Warning,
>         match_expr: Optional[Union[str, Pattern[str]]] = None,
>         *,
>         _ispytest: bool = False,
>     ) -> None:
>         check_ispytest(_ispytest)
>         super().__init__(_ispytest=True)
>     
>         msg = "exceptions must be derived from Warning, not %s"
>         if expected_warning is None:
> >           warnings.warn(WARNS_NONE_ARG, stacklevel=4)
> E           pytest.PytestRemovedIn8Warning: Passing None has been deprecated.
> E           See 
> https://docs.pytest.org/en/latest/how-to/capture-warnings.html#additional-use-cases-of-warnings-in-tests
>  for alternatives in common use cases.
> 
> __class__  = <class '_pytest.recwarn.WarningsChecker'>
> _ispytest  = True
> expected_warning = None
> match_expr = None
> msg        = 'exceptions must be derived from Warning, not %s'
> self       = WarningsChecker(record=True)
> 
> /usr/lib/python3/dist-packages/_pytest/recwarn.py:281: PytestRemovedIn8Warning
> ________________________ test_bind_warning[quart.com-1] 
> ________________________
> 
> server_name = 'quart.com', expected = 1
> http_scope = {'asgi': {}, 'client': ('127.0.0.1', 80), 'extensions': {}, 
> 'headers': [(b'User-Agent', b'Hypercorn'), (b'X-Hypercorn', b'Hypercorn'), 
> (b'Referer', b'hypercorn')], ...}
> 
>     @pytest.mark.parametrize(
>         "server_name, expected",
>         [("localhost", 0), ("quart.com", 1)],
>     )
>     async def test_bind_warning(server_name: str, expected: int, http_scope: 
> HTTPScope) -> None:
>         map_ = QuartMap(host_matching=False)
>         request = Request(
>             "GET",
>             "http",
>             "/",
>             b"",
>             Headers([("host", "Localhost")]),
>             "",
>             "1.1",
>             http_scope,
>             send_push_promise=no_op_push,
>         )
> >       with pytest.warns(None) as record:
> 
> expected   = 1
> http_scope = {'asgi': {}, 'client': ('127.0.0.1', 80), 'extensions': {}, 
> 'headers': [(b'User-Agent', b'Hypercorn'), (b'X-Hypercorn', b'Hypercorn'), 
> (b'Referer', b'hypercorn')], ...}
> map_       = QuartMap([])
> request    = <Request 'http://localhost/' [GET]>
> server_name = 'quart.com'
> 
> tests/test_routing.py:29: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> /usr/lib/python3/dist-packages/_pytest/recwarn.py:281: in __init__
>     warnings.warn(WARNS_NONE_ARG, stacklevel=4)
>         __class__  = <class '_pytest.recwarn.WarningsChecker'>
>         _ispytest  = True
>         expected_warning = None
>         match_expr = None
>         msg        = 'exceptions must be derived from Warning, not %s'
>         self       = WarningsChecker(record=True)
> /usr/lib/python3/dist-packages/_pytest/runner.py:342: in from_call
>     result: Optional[TResult] = func()
>         cls        = <class '_pytest.runner.CallInfo'>
>         duration   = 0.0004356299978098832
>         excinfo    = <ExceptionInfo PytestRemovedIn8Warning('Passing None has 
> been deprecated.\nSee 
> https://docs.pytest.org/en/latest/how-to/capture-warnings.html#additional-use-cases-of-warnings-in-tests
>  for alternatives in common use cases.') tblen=68>
>         func       = <function call_runtest_hook.<locals>.<lambda> at 
> 0x7f7bdc1060c0>
>         precise_start = 45855.06744554
>         precise_stop = 45855.06788117
>         reraise    = (<class '_pytest.outcomes.Exit'>, <class 
> 'KeyboardInterrupt'>)
>         result     = None
>         start      = 1710275661.0473664
>         stop       = 1710275661.0478027
>         when       = 'call'
> /usr/lib/python3/dist-packages/_pytest/runner.py:263: in <lambda>
>     lambda: ihook(item=item, **kwds), when=when, reraise=reraise
>         ihook      = <HookCaller 'pytest_runtest_call'>
>         item       = <Function test_bind_warning[localhost-0]>
>         kwds       = {}
> /usr/lib/python3/dist-packages/pluggy/_hooks.py:501: in __call__
>     return self._hookexec(self.name, self._hookimpls.copy(), kwargs, 
> firstresult)
>         firstresult = False
>         kwargs     = {'item': <Function test_bind_warning[localhost-0]>}
>         self       = <HookCaller 'pytest_runtest_call'>
> /usr/lib/python3/dist-packages/pluggy/_manager.py:119: in _hookexec
>     return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
>         firstresult = False
>         hook_name  = 'pytest_runtest_call'
>         kwargs     = {'item': <Function test_bind_warning[localhost-0]>}
>         methods    = [<HookImpl plugin_name='runner', plugin=<module 
> '_pytest.runner' from 
> '/usr/lib/python3/dist-packages/_pytest/runner.p...ugin=<module 
> '_pytest.unraisableexception' from 
> '/usr/lib/python3/dist-packages/_pytest/unraisableexception.py'>>, ...]
>         self       = <_pytest.config.PytestPluginManager object at 
> 0x7f7bdcaac150>
> /usr/lib/python3/dist-packages/_pytest/threadexception.py:87: in 
> pytest_runtest_call
>     yield from thread_exception_runtest_hook()
> /usr/lib/python3/dist-packages/_pytest/threadexception.py:63: in 
> thread_exception_runtest_hook
>     yield
>         cm         = <_pytest.threadexception.catch_threading_exception 
> object at 0x7f7bd9d695d0>
> /usr/lib/python3/dist-packages/_pytest/unraisableexception.py:90: in 
> pytest_runtest_call
>     yield from unraisable_exception_runtest_hook()
> /usr/lib/python3/dist-packages/_pytest/unraisableexception.py:65: in 
> unraisable_exception_runtest_hook
>     yield
>         cm         = <_pytest.unraisableexception.catch_unraisable_exception 
> object at 0x7f7bd9d72f10>
> /usr/lib/python3/dist-packages/_pytest/logging.py:839: in pytest_runtest_call
>     yield from self._runtest_for(item, "call")
>         item       = <Function test_bind_warning[localhost-0]>
>         self       = <_pytest.logging.LoggingPlugin object at 0x7f7bdc0ed090>
> /usr/lib/python3/dist-packages/_pytest/logging.py:822: in _runtest_for
>     yield
>         caplog_handler = <LogCaptureHandler (NOTSET)>
>         item       = <Function test_bind_warning[localhost-0]>
>         log        = ''
>         report_handler = <LogCaptureHandler (NOTSET)>
>         self       = <_pytest.logging.LoggingPlugin object at 0x7f7bdc0ed090>
>         when       = 'call'
> /usr/lib/python3/dist-packages/_pytest/capture.py:882: in pytest_runtest_call
>     return (yield)
>         item       = <Function test_bind_warning[localhost-0]>
>         self       = <CaptureManager _method='fd' 
> _global_capturing=<MultiCapture out=<FDCapture 1 oldfd=5 _state='suspended' 
> tmpfile=<_io....xtIOWrapper name='/dev/null' mode='r' encoding='utf-8'>> 
> _state='suspended' _in_suspended=False> _capture_fixture=None>
> /usr/lib/python3/dist-packages/_pytest/skipping.py:256: in pytest_runtest_call
>     return (yield)
>         item       = <Function test_bind_warning[localhost-0]>
>         xfailed    = None
> /usr/lib/python3/dist-packages/_pytest/runner.py:178: in pytest_runtest_call
>     raise e
>         item       = <Function test_bind_warning[localhost-0]>
> /usr/lib/python3/dist-packages/_pytest/runner.py:170: in pytest_runtest_call
>     item.runtest()
>         item       = <Function test_bind_warning[localhost-0]>
> /usr/lib/python3/dist-packages/_pytest/python.py:1831: in runtest
>     self.ihook.pytest_pyfunc_call(pyfuncitem=self)
>         self       = <Function test_bind_warning[localhost-0]>
> /usr/lib/python3/dist-packages/pluggy/_hooks.py:501: in __call__
>     return self._hookexec(self.name, self._hookimpls.copy(), kwargs, 
> firstresult)
>         firstresult = True
>         kwargs     = {'pyfuncitem': <Function test_bind_warning[localhost-0]>}
>         self       = <HookCaller 'pytest_pyfunc_call'>
> /usr/lib/python3/dist-packages/pluggy/_manager.py:119: in _hookexec
>     return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
>         firstresult = True
>         hook_name  = 'pytest_pyfunc_call'
>         kwargs     = {'pyfuncitem': <Function test_bind_warning[localhost-0]>}
>         methods    = [<HookImpl plugin_name='python', plugin=<module 
> '_pytest.python' from 
> '/usr/lib/python3/dist-packages/_pytest/python.p...ame='asyncio', 
> plugin=<module 'pytest_asyncio.plugin' from 
> '/usr/lib/python3/dist-packages/pytest_asyncio/plugin.py'>>]
>         self       = <_pytest.config.PytestPluginManager object at 
> 0x7f7bdcaac150>
> /usr/lib/python3/dist-packages/_pytest/python.py:194: in pytest_pyfunc_call
>     result = testfunction(**testargs)
>         funcargs   = {'event_loop': <_UnixSelectorEventLoop running=False 
> closed=True debug=False>, 'expected': 0, 'http_scope': {'asgi': {...r-Agent', 
> b'Hypercorn'), (b'X-Hypercorn', b'Hypercorn'), (b'Referer', b'hypercorn')], 
> ...}, 'server_name': 'localhost'}
>         pyfuncitem = <Function test_bind_warning[localhost-0]>
>         testargs   = {'expected': 0, 'http_scope': {'asgi': {}, 'client': 
> ('127.0.0.1', 80), 'extensions': {}, 'headers': [(b'User-Agent', 
> b'Hypercorn'), (b'X-Hypercorn', b'Hypercorn'), (b'Referer', b'hypercorn')], 
> ...}, 'server_name': 'localhost'}
>         testfunction = <function test_bind_warning at 0x7f7bd9d084a0>
> /usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:478: in inner
>     _loop.run_until_complete(task)
>         _loop      = <_UnixSelectorEventLoop running=False closed=True 
> debug=False>
>         args       = ()
>         coro       = <coroutine object test_bind_warning at 0x7f7bda640040>
>         func       = <function test_bind_warning at 0x7f7bdab3eb60>
>         kwargs     = {'expected': 0, 'http_scope': {'asgi': {}, 'client': 
> ('127.0.0.1', 80), 'extensions': {}, 'headers': [(b'User-Agent', 
> b'Hypercorn'), (b'X-Hypercorn', b'Hypercorn'), (b'Referer', b'hypercorn')], 
> ...}, 'server_name': 'localhost'}
>         pyfuncitem = <Function test_bind_warning[localhost-0]>
>         task       = <Task finished name='Task-405' coro=<test_bind_warning() 
> done, defined at 
> /<<PKGBUILDDIR>>/.pybuild/cp.../latest/how-to/capture-warnings.html#additional-use-cases-of-warnings-in-tests
>  for alternatives in common use cases.')>
> /usr/lib/python3.11/asyncio/base_events.py:654: in run_until_complete
>     return future.result()
>         future     = <Task finished name='Task-405' coro=<test_bind_warning() 
> done, defined at 
> /<<PKGBUILDDIR>>/.pybuild/cp.../latest/how-to/capture-warnings.html#additional-use-cases-of-warnings-in-tests
>  for alternatives in common use cases.')>
>         new_task   = False
>         self       = <_UnixSelectorEventLoop running=False closed=True 
> debug=False>
> tests/test_routing.py:29: in test_bind_warning
>     with pytest.warns(None) as record:
>         expected   = 0
>         http_scope = {'asgi': {}, 'client': ('127.0.0.1', 80), 'extensions': 
> {}, 'headers': [(b'User-Agent', b'Hypercorn'), (b'X-Hypercorn', 
> b'Hypercorn'), (b'Referer', b'hypercorn')], ...}
>         map_       = QuartMap([])
>         request    = <Request 'http://localhost/' [GET]>
>         server_name = 'localhost'
> /usr/lib/python3/dist-packages/_pytest/recwarn.py:281: in __init__
>     warnings.warn(WARNS_NONE_ARG, stacklevel=4)
>         __class__  = <class '_pytest.recwarn.WarningsChecker'>
>         _ispytest  = True
>         expected_warning = None
>         match_expr = None
>         msg        = 'exceptions must be derived from Warning, not %s'
>         self       = WarningsChecker(record=True)
> /usr/lib/python3/dist-packages/_pytest/runner.py:342: in from_call
>     result: Optional[TResult] = func()
>         cls        = <class '_pytest.runner.CallInfo'>
>         duration   = 0.001215306001540739
>         excinfo    = <ExceptionInfo PytestRemovedIn8Warning('Passing None has 
> been deprecated.\nSee 
> https://docs.pytest.org/en/latest/how-to/capture-warnings.html#additional-use-cases-of-warnings-in-tests
>  for alternatives in common use cases.') tblen=34>
>         func       = <function call_runtest_hook.<locals>.<lambda> at 
> 0x7f7bdc52c860>
>         precise_start = 45852.935502155
>         precise_stop = 45852.936717461
>         reraise    = (<class '_pytest.outcomes.Exit'>, <class 
> 'KeyboardInterrupt'>)
>         result     = None
>         start      = 1710275658.9154232
>         stop       = 1710275658.916639
>         when       = 'call'
> /usr/lib/python3/dist-packages/_pytest/runner.py:263: in <lambda>
>     lambda: ihook(item=item, **kwds), when=when, reraise=reraise
>         ihook      = <HookCaller 'pytest_runtest_call'>
>         item       = <Function test_websocket_accept_connection_warns>
>         kwds       = {}
> /usr/lib/python3/dist-packages/pluggy/_hooks.py:501: in __call__
>     return self._hookexec(self.name, self._hookimpls.copy(), kwargs, 
> firstresult)
>         firstresult = False
>         kwargs     = {'item': <Function 
> test_websocket_accept_connection_warns>}
>         self       = <HookCaller 'pytest_runtest_call'>
> /usr/lib/python3/dist-packages/pluggy/_manager.py:119: in _hookexec
>     return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
>         firstresult = False
>         hook_name  = 'pytest_runtest_call'
>         kwargs     = {'item': <Function 
> test_websocket_accept_connection_warns>}
>         methods    = [<HookImpl plugin_name='runner', plugin=<module 
> '_pytest.runner' from 
> '/usr/lib/python3/dist-packages/_pytest/runner.p...ugin=<module 
> '_pytest.unraisableexception' from 
> '/usr/lib/python3/dist-packages/_pytest/unraisableexception.py'>>, ...]
>         self       = <_pytest.config.PytestPluginManager object at 
> 0x7f7bdcaac150>
> /usr/lib/python3/dist-packages/_pytest/threadexception.py:87: in 
> pytest_runtest_call
>     yield from thread_exception_runtest_hook()
> /usr/lib/python3/dist-packages/_pytest/threadexception.py:63: in 
> thread_exception_runtest_hook
>     yield
>         cm         = <_pytest.threadexception.catch_threading_exception 
> object at 0x7f7bda634ed0>
> /usr/lib/python3/dist-packages/_pytest/unraisableexception.py:90: in 
> pytest_runtest_call
>     yield from unraisable_exception_runtest_hook()
> /usr/lib/python3/dist-packages/_pytest/unraisableexception.py:65: in 
> unraisable_exception_runtest_hook
>     yield
>         cm         = <_pytest.unraisableexception.catch_unraisable_exception 
> object at 0x7f7bda635e10>
> /usr/lib/python3/dist-packages/_pytest/logging.py:839: in pytest_runtest_call
>     yield from self._runtest_for(item, "call")
>         item       = <Function test_websocket_accept_connection_warns>
>         self       = <_pytest.logging.LoggingPlugin object at 0x7f7bdc0ed090>
> /usr/lib/python3/dist-packages/_pytest/logging.py:822: in _runtest_for
>     yield
>         caplog_handler = <LogCaptureHandler (NOTSET)>
>         item       = <Function test_websocket_accept_connection_warns>
>         log        = ''
>         report_handler = <LogCaptureHandler (NOTSET)>
>         self       = <_pytest.logging.LoggingPlugin object at 0x7f7bdc0ed090>
>         when       = 'call'
> /usr/lib/python3/dist-packages/_pytest/capture.py:882: in pytest_runtest_call
>     return (yield)
>         item       = <Function test_websocket_accept_connection_warns>
>         self       = <CaptureManager _method='fd' 
> _global_capturing=<MultiCapture out=<FDCapture 1 oldfd=5 _state='suspended' 
> tmpfile=<_io....xtIOWrapper name='/dev/null' mode='r' encoding='utf-8'>> 
> _state='suspended' _in_suspended=False> _capture_fixture=None>
> /usr/lib/python3/dist-packages/_pytest/skipping.py:256: in pytest_runtest_call
>     return (yield)
>         item       = <Function test_websocket_accept_connection_warns>
>         xfailed    = None
> /usr/lib/python3/dist-packages/_pytest/runner.py:178: in pytest_runtest_call
>     raise e
>         item       = <Function test_websocket_accept_connection_warns>
> /usr/lib/python3/dist-packages/_pytest/runner.py:170: in pytest_runtest_call
>     item.runtest()
>         item       = <Function test_websocket_accept_connection_warns>
> /usr/lib/python3/dist-packages/_pytest/python.py:1831: in runtest
>     self.ihook.pytest_pyfunc_call(pyfuncitem=self)
>         self       = <Function test_websocket_accept_connection_warns>
> /usr/lib/python3/dist-packages/pluggy/_hooks.py:501: in __call__
>     return self._hookexec(self.name, self._hookimpls.copy(), kwargs, 
> firstresult)
>         firstresult = True
>         kwargs     = {'pyfuncitem': <Function 
> test_websocket_accept_connection_warns>}
>         self       = <HookCaller 'pytest_pyfunc_call'>
> /usr/lib/python3/dist-packages/pluggy/_manager.py:119: in _hookexec
>     return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
>         firstresult = True
>         hook_name  = 'pytest_pyfunc_call'
>         kwargs     = {'pyfuncitem': <Function 
> test_websocket_accept_connection_warns>}
>         methods    = [<HookImpl plugin_name='python', plugin=<module 
> '_pytest.python' from 
> '/usr/lib/python3/dist-packages/_pytest/python.p...ame='asyncio', 
> plugin=<module 'pytest_asyncio.plugin' from 
> '/usr/lib/python3/dist-packages/pytest_asyncio/plugin.py'>>]
>         self       = <_pytest.config.PytestPluginManager object at 
> 0x7f7bdcaac150>
> /usr/lib/python3/dist-packages/_pytest/python.py:194: in pytest_pyfunc_call
>     result = testfunction(**testargs)
>         funcargs   = {'event_loop': <_UnixSelectorEventLoop running=False 
> closed=True debug=False>, 'websocket_scope': {'asgi': {}, 'client...ons': {}, 
> 'headers': [(b'User-Agent', b'Hypercorn'), (b'X-Hypercorn', b'Hypercorn'), 
> (b'Referer', b'hypercorn')], ...}}
>         pyfuncitem = <Function test_websocket_accept_connection_warns>
>         testargs   = {'websocket_scope': {'asgi': {}, 'client': ('127.0.0.1', 
> 80), 'extensions': {}, 'headers': [(b'User-Agent', b'Hypercorn'), 
> (b'X-Hypercorn', b'Hypercorn'), (b'Referer', b'hypercorn')], ...}}
>         testfunction = <function test_websocket_accept_connection_warns at 
> 0x7f7bda5e93a0>
> /usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:478: in inner
>     _loop.run_until_complete(task)
>         _loop      = <_UnixSelectorEventLoop running=False closed=True 
> debug=False>
>         args       = ()
>         coro       = <coroutine object test_websocket_accept_connection_warns 
> at 0x7f7bdab00040>
>         func       = <function test_websocket_accept_connection_warns at 
> 0x7f7bdab08c20>
>         kwargs     = {'websocket_scope': {'asgi': {}, 'client': ('127.0.0.1', 
> 80), 'extensions': {}, 'headers': [(b'User-Agent', b'Hypercorn'), 
> (b'X-Hypercorn', b'Hypercorn'), (b'Referer', b'hypercorn')], ...}}
>         pyfuncitem = <Function test_websocket_accept_connection_warns>
>         task       = <Task finished name='Task-97' 
> coro=<test_websocket_accept_connection_warns() done, defined at 
> /<<BUILDDIR>>/quar.../latest/how-to/capture-warnings.html#additional-use-cases-of-warnings-in-tests
>  for alternatives in common use cases.')>
> /usr/lib/python3.11/asyncio/base_events.py:654: in run_until_complete
>     return future.result()
>         future     = <Task finished name='Task-97' 
> coro=<test_websocket_accept_connection_warns() done, defined at 
> /<<BUILDDIR>>/quar.../latest/how-to/capture-warnings.html#additional-use-cases-of-warnings-in-tests
>  for alternatives in common use cases.')>
>         new_task   = False
>         self       = <_UnixSelectorEventLoop running=False closed=True 
> debug=False>
> tests/test_asgi.py:287: in test_websocket_accept_connection_warns
>     with pytest.warns(None):
>         connection = <quart.asgi.ASGIWebsocketConnection object at 
> 0x7f7bda64b1d0>
>         mock_send  = <function 
> test_websocket_accept_connection_warns.<locals>.mock_send at 0x7f7bda5ea660>
>         websocket_scope = {'asgi': {}, 'client': ('127.0.0.1', 80), 
> 'extensions': {}, 'headers': [(b'User-Agent', b'Hypercorn'), (b'X-Hypercorn', 
> b'Hypercorn'), (b'Referer', b'hypercorn')], ...}
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
> self = WarningsChecker(record=True), expected_warning = None, match_expr = 
> None
> 
>     def __init__(
>         self,
>         expected_warning: Optional[
>             Union[Type[Warning], Tuple[Type[Warning], ...]]
>         ] = Warning,
>         match_expr: Optional[Union[str, Pattern[str]]] = None,
>         *,
>         _ispytest: bool = False,
>     ) -> None:
>         check_ispytest(_ispytest)
>         super().__init__(_ispytest=True)
>     
>         msg = "exceptions must be derived from Warning, not %s"
>         if expected_warning is None:
> >           warnings.warn(WARNS_NONE_ARG, stacklevel=4)
> E           pytest.PytestRemovedIn8Warning: Passing None has been deprecated.
> E           See 
> https://docs.pytest.org/en/latest/how-to/capture-warnings.html#additional-use-cases-of-warnings-in-tests
>  for alternatives in common use cases.
> 
> __class__  = <class '_pytest.recwarn.WarningsChecker'>
> _ispytest  = True
> expected_warning = None
> match_expr = None
> msg        = 'exceptions must be derived from Warning, not %s'
> self       = WarningsChecker(record=True)
> 
> /usr/lib/python3/dist-packages/_pytest/recwarn.py:281: PytestRemovedIn8Warning
> =========================== short test summary info 
> ============================
> FAILED tests/test_asgi.py::test_websocket_accept_connection_warns - 
> pytest.Py...
> FAILED tests/test_routing.py::test_bind_warning[localhost-0] - 
> pytest.PytestR...
> FAILED tests/test_routing.py::test_bind_warning[quart.com-1] - 
> pytest.PytestR...
> ======================== 3 failed, 247 passed in 5.66s 
> =========================
> E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_quart/build; python3.11 -m pytest 
> tests
> dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.12 
> 3.11" returned exit code 13


The full build log is available from:
http://qa-logs.debian.net/2024/03/13/quart_0.19.4-1_unstable.log

All bugs filed during this archive rebuild are listed at:
https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=ftbfs-20240313;users=lu...@debian.org
or:
https://udd.debian.org/bugs/?release=na&merged=ign&fnewerval=7&flastmodval=7&fusertag=only&fusertagtag=ftbfs-20240313&fusertaguser=lu...@debian.org&allbugs=1&cseverity=1&ctags=1&caffected=1#results

A list of current common problems and possible solutions is available at
http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute!

If you reassign this bug to another package, please mark it as 'affects'-ing
this package. See https://www.debian.org/Bugs/server-control#affects

If you fail to reproduce this, please provide a build log and diff it with mine
so that we can identify if something relevant changed in the meantime.


Reply via email to