Your message dated Wed, 17 Jul 2024 19:50:14 +0000
with message-id <[email protected]>
and subject line Bug#1066787: fixed in asgi-lifespan 2.1.0-3
has caused the Debian Bug report #1066787,
regarding asgi-lifespan: FTBFS: dh_auto_test: error: pybuild --test 
--test-pytest -i python{version} -p "3.12 3.11" returned exit code 13
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 [email protected]
immediately.)


-- 
1066787: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1066787
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Source: asgi-lifespan
Version: 2.1.0-2
Severity: serious
Justification: FTBFS
Tags: trixie sid ftbfs
User: [email protected]
Usertags: ftbfs-20240313 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
>    dh_auto_build -O--buildsystem=pybuild
> 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_asgi-lifespan  
> * Building wheel...
> No `packages` or `py_modules` configuration, performing automatic discovery.
> `src-layout` detected -- analysing ./src
> discovered packages -- ['asgi_lifespan', 'asgi_lifespan._concurrency']
> discovered py_modules -- []
> running bdist_wheel
> running build
> running build_py
> creating build
> creating build/lib
> creating build/lib/asgi_lifespan
> copying src/asgi_lifespan/__init__.py -> build/lib/asgi_lifespan
> copying src/asgi_lifespan/_types.py -> build/lib/asgi_lifespan
> copying src/asgi_lifespan/_manager.py -> build/lib/asgi_lifespan
> copying src/asgi_lifespan/_compat.py -> build/lib/asgi_lifespan
> copying src/asgi_lifespan/_exceptions.py -> build/lib/asgi_lifespan
> creating build/lib/asgi_lifespan/_concurrency
> copying src/asgi_lifespan/_concurrency/__init__.py -> 
> build/lib/asgi_lifespan/_concurrency
> copying src/asgi_lifespan/_concurrency/asyncio.py -> 
> build/lib/asgi_lifespan/_concurrency
> copying src/asgi_lifespan/_concurrency/base.py -> 
> build/lib/asgi_lifespan/_concurrency
> copying src/asgi_lifespan/_concurrency/trio.py -> 
> build/lib/asgi_lifespan/_concurrency
> running egg_info
> creating src/asgi_lifespan.egg-info
> writing src/asgi_lifespan.egg-info/PKG-INFO
> writing dependency_links to src/asgi_lifespan.egg-info/dependency_links.txt
> writing requirements to src/asgi_lifespan.egg-info/requires.txt
> writing top-level names to src/asgi_lifespan.egg-info/top_level.txt
> writing manifest file 'src/asgi_lifespan.egg-info/SOURCES.txt'
> reading manifest file 'src/asgi_lifespan.egg-info/SOURCES.txt'
> reading manifest template 'MANIFEST.in'
> adding license file 'LICENSE'
> writing manifest file 'src/asgi_lifespan.egg-info/SOURCES.txt'
> copying src/asgi_lifespan/py.typed -> build/lib/asgi_lifespan
> installing to build/bdist.linux-x86_64/wheel
> running install
> running install_lib
> creating build/bdist.linux-x86_64
> creating build/bdist.linux-x86_64/wheel
> creating build/bdist.linux-x86_64/wheel/asgi_lifespan
> copying build/lib/asgi_lifespan/__init__.py -> 
> build/bdist.linux-x86_64/wheel/asgi_lifespan
> copying build/lib/asgi_lifespan/_types.py -> 
> build/bdist.linux-x86_64/wheel/asgi_lifespan
> copying build/lib/asgi_lifespan/py.typed -> 
> build/bdist.linux-x86_64/wheel/asgi_lifespan
> copying build/lib/asgi_lifespan/_manager.py -> 
> build/bdist.linux-x86_64/wheel/asgi_lifespan
> copying build/lib/asgi_lifespan/_compat.py -> 
> build/bdist.linux-x86_64/wheel/asgi_lifespan
> creating build/bdist.linux-x86_64/wheel/asgi_lifespan/_concurrency
> copying build/lib/asgi_lifespan/_concurrency/__init__.py -> 
> build/bdist.linux-x86_64/wheel/asgi_lifespan/_concurrency
> copying build/lib/asgi_lifespan/_concurrency/asyncio.py -> 
> build/bdist.linux-x86_64/wheel/asgi_lifespan/_concurrency
> copying build/lib/asgi_lifespan/_concurrency/base.py -> 
> build/bdist.linux-x86_64/wheel/asgi_lifespan/_concurrency
> copying build/lib/asgi_lifespan/_concurrency/trio.py -> 
> build/bdist.linux-x86_64/wheel/asgi_lifespan/_concurrency
> copying build/lib/asgi_lifespan/_exceptions.py -> 
> build/bdist.linux-x86_64/wheel/asgi_lifespan
> running install_egg_info
> Copying src/asgi_lifespan.egg-info to 
> build/bdist.linux-x86_64/wheel/asgi_lifespan-2.1.0.egg-info
> running install_scripts
> creating build/bdist.linux-x86_64/wheel/asgi_lifespan-2.1.0.dist-info/WHEEL
> creating 
> '/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_asgi-lifespan/.tmp-8wryf6qg/asgi_lifespan-2.1.0-py3-none-any.whl'
>  and adding 'build/bdist.linux-x86_64/wheel' to it
> adding 'asgi_lifespan/__init__.py'
> adding 'asgi_lifespan/_compat.py'
> adding 'asgi_lifespan/_exceptions.py'
> adding 'asgi_lifespan/_manager.py'
> adding 'asgi_lifespan/_types.py'
> adding 'asgi_lifespan/py.typed'
> adding 'asgi_lifespan/_concurrency/__init__.py'
> adding 'asgi_lifespan/_concurrency/asyncio.py'
> adding 'asgi_lifespan/_concurrency/base.py'
> adding 'asgi_lifespan/_concurrency/trio.py'
> adding 'asgi_lifespan-2.1.0.dist-info/LICENSE'
> adding 'asgi_lifespan-2.1.0.dist-info/METADATA'
> adding 'asgi_lifespan-2.1.0.dist-info/WHEEL'
> adding 'asgi_lifespan-2.1.0.dist-info/top_level.txt'
> adding 'asgi_lifespan-2.1.0.dist-info/RECORD'
> removing build/bdist.linux-x86_64/wheel
> Successfully built asgi_lifespan-2.1.0-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_asgi-lifespan  
> * Building wheel...
> No `packages` or `py_modules` configuration, performing automatic discovery.
> `src-layout` detected -- analysing ./src
> discovered packages -- ['asgi_lifespan', 'asgi_lifespan._concurrency']
> discovered py_modules -- []
> running bdist_wheel
> running build
> running build_py
> running egg_info
> writing src/asgi_lifespan.egg-info/PKG-INFO
> writing dependency_links to src/asgi_lifespan.egg-info/dependency_links.txt
> writing requirements to src/asgi_lifespan.egg-info/requires.txt
> writing top-level names to src/asgi_lifespan.egg-info/top_level.txt
> reading manifest file 'src/asgi_lifespan.egg-info/SOURCES.txt'
> reading manifest template 'MANIFEST.in'
> adding license file 'LICENSE'
> writing manifest file 'src/asgi_lifespan.egg-info/SOURCES.txt'
> installing to build/bdist.linux-x86_64/wheel
> running install
> running install_lib
> creating build/bdist.linux-x86_64/wheel
> creating build/bdist.linux-x86_64/wheel/asgi_lifespan
> copying build/lib/asgi_lifespan/__init__.py -> 
> build/bdist.linux-x86_64/wheel/asgi_lifespan
> copying build/lib/asgi_lifespan/_types.py -> 
> build/bdist.linux-x86_64/wheel/asgi_lifespan
> copying build/lib/asgi_lifespan/py.typed -> 
> build/bdist.linux-x86_64/wheel/asgi_lifespan
> copying build/lib/asgi_lifespan/_manager.py -> 
> build/bdist.linux-x86_64/wheel/asgi_lifespan
> copying build/lib/asgi_lifespan/_compat.py -> 
> build/bdist.linux-x86_64/wheel/asgi_lifespan
> creating build/bdist.linux-x86_64/wheel/asgi_lifespan/_concurrency
> copying build/lib/asgi_lifespan/_concurrency/__init__.py -> 
> build/bdist.linux-x86_64/wheel/asgi_lifespan/_concurrency
> copying build/lib/asgi_lifespan/_concurrency/asyncio.py -> 
> build/bdist.linux-x86_64/wheel/asgi_lifespan/_concurrency
> copying build/lib/asgi_lifespan/_concurrency/base.py -> 
> build/bdist.linux-x86_64/wheel/asgi_lifespan/_concurrency
> copying build/lib/asgi_lifespan/_concurrency/trio.py -> 
> build/bdist.linux-x86_64/wheel/asgi_lifespan/_concurrency
> copying build/lib/asgi_lifespan/_exceptions.py -> 
> build/bdist.linux-x86_64/wheel/asgi_lifespan
> running install_egg_info
> Copying src/asgi_lifespan.egg-info to 
> build/bdist.linux-x86_64/wheel/asgi_lifespan-2.1.0.egg-info
> running install_scripts
> creating build/bdist.linux-x86_64/wheel/asgi_lifespan-2.1.0.dist-info/WHEEL
> creating 
> '/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_asgi-lifespan/.tmp-pepftofp/asgi_lifespan-2.1.0-py3-none-any.whl'
>  and adding 'build/bdist.linux-x86_64/wheel' to it
> adding 'asgi_lifespan/__init__.py'
> adding 'asgi_lifespan/_compat.py'
> adding 'asgi_lifespan/_exceptions.py'
> adding 'asgi_lifespan/_manager.py'
> adding 'asgi_lifespan/_types.py'
> adding 'asgi_lifespan/py.typed'
> adding 'asgi_lifespan/_concurrency/__init__.py'
> adding 'asgi_lifespan/_concurrency/asyncio.py'
> adding 'asgi_lifespan/_concurrency/base.py'
> adding 'asgi_lifespan/_concurrency/trio.py'
> adding 'asgi_lifespan-2.1.0.dist-info/LICENSE'
> adding 'asgi_lifespan-2.1.0.dist-info/METADATA'
> adding 'asgi_lifespan-2.1.0.dist-info/WHEEL'
> adding 'asgi_lifespan-2.1.0.dist-info/top_level.txt'
> adding 'asgi_lifespan-2.1.0.dist-info/RECORD'
> removing build/bdist.linux-x86_64/wheel
> Successfully built asgi_lifespan-2.1.0-py3-none-any.whl
> I: pybuild plugin_pyproject:144: Unpacking wheel built for python3.11 with 
> "installer" module
>    dh_auto_test -O--buildsystem=pybuild
> I: pybuild base:305: cd 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_asgi-lifespan/build; python3.12 -m 
> pytest -c /dev/null --asyncio-mode=strict -p no:cacheprovider
> ============================= test session starts 
> ==============================
> platform linux -- Python 3.12.2, pytest-8.0.2, pluggy-1.4.0
> rootdir: /dev
> configfile: null
> plugins: tornasync-0.6.0.post2, anyio-4.2.0, cov-4.1.0, asyncio-0.20.3, 
> trio-0.8.0, twisted-1.14.0
> asyncio: mode=Mode.STRICT
> collected 32 items
> 
> ../../../../../../dev/tests/test_manager.py ..........................x. [ 
> 87%]
> .xFF                                                                     
> [100%]
> 
> =================================== FAILURES 
> ===================================
> ____________________ test_lifespan_state_async_cm[asyncio] 
> _____________________
> 
>     @contextlib.contextmanager
>     def map_httpcore_exceptions() -> typing.Iterator[None]:
>         try:
> >           yield
> 
> /usr/lib/python3/dist-packages/httpx/_transports/default.py:69: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> /usr/lib/python3/dist-packages/httpx/_transports/default.py:373: in 
> handle_async_request
>     resp = await self._pool.handle_async_request(req)
> /usr/lib/python3/dist-packages/httpcore/_async/connection_pool.py:216: in 
> handle_async_request
>     raise exc from None
> /usr/lib/python3/dist-packages/httpcore/_async/connection_pool.py:196: in 
> handle_async_request
>     response = await connection.handle_async_request(
> /usr/lib/python3/dist-packages/httpcore/_async/http_proxy.py:207: in 
> handle_async_request
>     return await self._connection.handle_async_request(proxy_request)
> /usr/lib/python3/dist-packages/httpcore/_async/connection.py:99: in 
> handle_async_request
>     raise exc
> /usr/lib/python3/dist-packages/httpcore/_async/connection.py:76: in 
> handle_async_request
>     stream = await self._connect(request)
> /usr/lib/python3/dist-packages/httpcore/_async/connection.py:122: in _connect
>     stream = await self._network_backend.connect_tcp(**kwargs)
> /usr/lib/python3/dist-packages/httpcore/_backends/auto.py:30: in connect_tcp
>     return await self._backend.connect_tcp(
> /usr/lib/python3/dist-packages/httpcore/_backends/anyio.py:112: in connect_tcp
>     with map_exceptions(exc_map):
> /usr/lib/python3.12/contextlib.py:158: in __exit__
>     self.gen.throw(value)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
> map = {<class 'TimeoutError'>: <class 'httpcore.ConnectTimeout'>, <class 
> 'OSError'>: <class 'httpcore.ConnectError'>, <class 
> 'anyio.BrokenResourceError'>: <class 'httpcore.ConnectError'>}
> 
>     @contextlib.contextmanager
>     def map_exceptions(map: ExceptionMapping) -> Iterator[None]:
>         try:
>             yield
>         except Exception as exc:  # noqa: PIE786
>             for from_exc, to_exc in map.items():
>                 if isinstance(exc, from_exc):
> >                   raise to_exc(exc) from exc
> E                   httpcore.ConnectError: All connection attempts failed
> 
> /usr/lib/python3/dist-packages/httpcore/_exceptions.py:14: ConnectError
> 
> The above exception was the direct cause of the following exception:
> 
>     @pytest.mark.usefixtures("concurrency")
>     async def test_lifespan_state_async_cm() -> None:
>         @contextlib.asynccontextmanager
>         async def lifespan(_app: ASGIApp) -> typing.AsyncGenerator:
>             yield {"foo": 1}
>     
>         async def get(request: Request) -> Response:
>             assert request.state.foo == 1
>             request.state.foo = 2
>             return PlainTextResponse(f"Hello {request.state.foo}")
>     
>         app = Starlette(lifespan=lifespan, routes=[Route("/get", get)])
>     
>         async with LifespanManager(app) as manager:
>             async with httpx.AsyncClient(
>                 app=manager.app, base_url="http://example.org";
>             ) as client:
> >               response = await client.get("/get")
> 
> tests/test_manager.py:246: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> /usr/lib/python3/dist-packages/httpx/_client.py:1801: in get
>     return await self.request(
> /usr/lib/python3/dist-packages/httpx/_client.py:1574: in request
>     return await self.send(request, auth=auth, 
> follow_redirects=follow_redirects)
> /usr/lib/python3/dist-packages/httpx/_client.py:1661: in send
>     response = await self._send_handling_auth(
> /usr/lib/python3/dist-packages/httpx/_client.py:1689: in _send_handling_auth
>     response = await self._send_handling_redirects(
> /usr/lib/python3/dist-packages/httpx/_client.py:1726: in 
> _send_handling_redirects
>     response = await self._send_single_request(request)
> /usr/lib/python3/dist-packages/httpx/_client.py:1763: in _send_single_request
>     response = await transport.handle_async_request(request)
> /usr/lib/python3/dist-packages/httpx/_transports/default.py:372: in 
> handle_async_request
>     with map_httpcore_exceptions():
> /usr/lib/python3.12/contextlib.py:158: in __exit__
>     self.gen.throw(value)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
>     @contextlib.contextmanager
>     def map_httpcore_exceptions() -> typing.Iterator[None]:
>         try:
>             yield
>         except Exception as exc:
>             mapped_exc = None
>     
>             for from_exc, to_exc in HTTPCORE_EXC_MAP.items():
>                 if not isinstance(exc, from_exc):
>                     continue
>                 # We want to map to the most specific exception we can find.
>                 # Eg if `exc` is an `httpcore.ReadTimeout`, we want to map to
>                 # `httpx.ReadTimeout`, not just `httpx.TimeoutException`.
>                 if mapped_exc is None or issubclass(to_exc, mapped_exc):
>                     mapped_exc = to_exc
>     
>             if mapped_exc is None:  # pragma: no cover
>                 raise
>     
>             message = str(exc)
> >           raise mapped_exc(message) from exc
> E           httpx.ConnectError: All connection attempts failed
> 
> /usr/lib/python3/dist-packages/httpx/_transports/default.py:86: ConnectError
> ______________________ test_lifespan_state_async_cm[trio] 
> ______________________
> 
>     @contextlib.contextmanager
>     def map_httpcore_exceptions() -> typing.Iterator[None]:
>         try:
> >           yield
> 
> /usr/lib/python3/dist-packages/httpx/_transports/default.py:69: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> /usr/lib/python3/dist-packages/httpx/_transports/default.py:373: in 
> handle_async_request
>     resp = await self._pool.handle_async_request(req)
> /usr/lib/python3/dist-packages/httpcore/_async/connection_pool.py:216: in 
> handle_async_request
>     raise exc from None
> /usr/lib/python3/dist-packages/httpcore/_async/connection_pool.py:196: in 
> handle_async_request
>     response = await connection.handle_async_request(
> /usr/lib/python3/dist-packages/httpcore/_async/http_proxy.py:207: in 
> handle_async_request
>     return await self._connection.handle_async_request(proxy_request)
> /usr/lib/python3/dist-packages/httpcore/_async/connection.py:99: in 
> handle_async_request
>     raise exc
> /usr/lib/python3/dist-packages/httpcore/_async/connection.py:76: in 
> handle_async_request
>     stream = await self._connect(request)
> /usr/lib/python3/dist-packages/httpcore/_async/connection.py:122: in _connect
>     stream = await self._network_backend.connect_tcp(**kwargs)
> /usr/lib/python3/dist-packages/httpcore/_backends/auto.py:30: in connect_tcp
>     return await self._backend.connect_tcp(
> /usr/lib/python3/dist-packages/httpcore/_backends/trio.py:130: in connect_tcp
>     with map_exceptions(exc_map):
> /usr/lib/python3.12/contextlib.py:158: in __exit__
>     self.gen.throw(value)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
> map = {<class 'trio.TooSlowError'>: <class 'httpcore.ConnectTimeout'>, <class 
> 'trio.BrokenResourceError'>: <class 'httpcore.ConnectError'>, <class 
> 'OSError'>: <class 'httpcore.ConnectError'>}
> 
>     @contextlib.contextmanager
>     def map_exceptions(map: ExceptionMapping) -> Iterator[None]:
>         try:
>             yield
>         except Exception as exc:  # noqa: PIE786
>             for from_exc, to_exc in map.items():
>                 if isinstance(exc, from_exc):
> >                   raise to_exc(exc) from exc
> E                   httpcore.ConnectError: all attempts to connect to 
> 127.0.0.1:9 failed
> 
> /usr/lib/python3/dist-packages/httpcore/_exceptions.py:14: ConnectError
> 
> The above exception was the direct cause of the following exception:
> 
>     @pytest.mark.usefixtures("concurrency")
>     async def test_lifespan_state_async_cm() -> None:
>         @contextlib.asynccontextmanager
>         async def lifespan(_app: ASGIApp) -> typing.AsyncGenerator:
>             yield {"foo": 1}
>     
>         async def get(request: Request) -> Response:
>             assert request.state.foo == 1
>             request.state.foo = 2
>             return PlainTextResponse(f"Hello {request.state.foo}")
>     
>         app = Starlette(lifespan=lifespan, routes=[Route("/get", get)])
>     
>         async with LifespanManager(app) as manager:
>             async with httpx.AsyncClient(
>                 app=manager.app, base_url="http://example.org";
>             ) as client:
> >               response = await client.get("/get")
> 
> tests/test_manager.py:246: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> /usr/lib/python3/dist-packages/httpx/_client.py:1801: in get
>     return await self.request(
> /usr/lib/python3/dist-packages/httpx/_client.py:1574: in request
>     return await self.send(request, auth=auth, 
> follow_redirects=follow_redirects)
> /usr/lib/python3/dist-packages/httpx/_client.py:1661: in send
>     response = await self._send_handling_auth(
> /usr/lib/python3/dist-packages/httpx/_client.py:1689: in _send_handling_auth
>     response = await self._send_handling_redirects(
> /usr/lib/python3/dist-packages/httpx/_client.py:1726: in 
> _send_handling_redirects
>     response = await self._send_single_request(request)
> /usr/lib/python3/dist-packages/httpx/_client.py:1763: in _send_single_request
>     response = await transport.handle_async_request(request)
> /usr/lib/python3/dist-packages/httpx/_transports/default.py:372: in 
> handle_async_request
>     with map_httpcore_exceptions():
> /usr/lib/python3.12/contextlib.py:158: in __exit__
>     self.gen.throw(value)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
>     @contextlib.contextmanager
>     def map_httpcore_exceptions() -> typing.Iterator[None]:
>         try:
>             yield
>         except Exception as exc:
>             mapped_exc = None
>     
>             for from_exc, to_exc in HTTPCORE_EXC_MAP.items():
>                 if not isinstance(exc, from_exc):
>                     continue
>                 # We want to map to the most specific exception we can find.
>                 # Eg if `exc` is an `httpcore.ReadTimeout`, we want to map to
>                 # `httpx.ReadTimeout`, not just `httpx.TimeoutException`.
>                 if mapped_exc is None or issubclass(to_exc, mapped_exc):
>                     mapped_exc = to_exc
>     
>             if mapped_exc is None:  # pragma: no cover
>                 raise
>     
>             message = str(exc)
> >           raise mapped_exc(message) from exc
> E           httpx.ConnectError: all attempts to connect to 127.0.0.1:9 failed
> 
> /usr/lib/python3/dist-packages/httpx/_transports/default.py:86: ConnectError
> =============================== warnings summary 
> ===============================
> tests/test_manager.py: 12 warnings
>   /usr/lib/python3/dist-packages/starlette/routing.py:616: 
> DeprecationWarning: The on_startup and on_shutdown parameters are deprecated, 
> and they will be removed on version 1.0. Use the lifespan parameter instead. 
> See more about it on https://www.starlette.io/lifespan/.
>     warnings.warn(
> 
> tests/test_manager.py::test_lifespan_state_async_cm[asyncio]
> tests/test_manager.py::test_lifespan_state_async_cm[trio]
>   /usr/lib/python3/dist-packages/httpx/_client.py:1426: DeprecationWarning: 
> The 'app' shortcut is now deprecated. Use the explicit style 
> 'transport=ASGITransport(app=...)' instead.
>     warnings.warn(message, DeprecationWarning)
> 
> -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
> =========================== short test summary info 
> ============================
> FAILED 
> ../../../../../../dev/tests/test_manager.py::test_lifespan_state_async_cm[asyncio]
> FAILED 
> ../../../../../../dev/tests/test_manager.py::test_lifespan_state_async_cm[trio]
> ============= 2 failed, 28 passed, 2 xfailed, 14 warnings in 0.95s 
> =============
> E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_asgi-lifespan/build; python3.12 -m 
> pytest -c /dev/null --asyncio-mode=strict -p no:cacheprovider
> I: pybuild base:305: cd 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_asgi-lifespan/build; python3.11 -m 
> pytest -c /dev/null --asyncio-mode=strict -p no:cacheprovider
> ============================= test session starts 
> ==============================
> platform linux -- Python 3.11.8, pytest-8.0.2, pluggy-1.4.0
> rootdir: /dev
> configfile: null
> plugins: tornasync-0.6.0.post2, anyio-4.2.0, cov-4.1.0, asyncio-0.20.3, 
> trio-0.8.0, twisted-1.14.0
> asyncio: mode=Mode.STRICT
> collected 32 items
> 
> ../../../../../../dev/tests/test_manager.py ..........................x. [ 
> 87%]
> .xFF                                                                     
> [100%]
> 
> =================================== FAILURES 
> ===================================
> ____________________ test_lifespan_state_async_cm[asyncio] 
> _____________________
> 
>     @contextlib.contextmanager
>     def map_httpcore_exceptions() -> typing.Iterator[None]:
>         try:
> >           yield
> 
> /usr/lib/python3/dist-packages/httpx/_transports/default.py:69: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> /usr/lib/python3/dist-packages/httpx/_transports/default.py:373: in 
> handle_async_request
>     resp = await self._pool.handle_async_request(req)
> /usr/lib/python3/dist-packages/httpcore/_async/connection_pool.py:216: in 
> handle_async_request
>     raise exc from None
> /usr/lib/python3/dist-packages/httpcore/_async/connection_pool.py:196: in 
> handle_async_request
>     response = await connection.handle_async_request(
> /usr/lib/python3/dist-packages/httpcore/_async/http_proxy.py:207: in 
> handle_async_request
>     return await self._connection.handle_async_request(proxy_request)
> /usr/lib/python3/dist-packages/httpcore/_async/connection.py:99: in 
> handle_async_request
>     raise exc
> /usr/lib/python3/dist-packages/httpcore/_async/connection.py:76: in 
> handle_async_request
>     stream = await self._connect(request)
> /usr/lib/python3/dist-packages/httpcore/_async/connection.py:122: in _connect
>     stream = await self._network_backend.connect_tcp(**kwargs)
> /usr/lib/python3/dist-packages/httpcore/_backends/auto.py:30: in connect_tcp
>     return await self._backend.connect_tcp(
> /usr/lib/python3/dist-packages/httpcore/_backends/anyio.py:112: in connect_tcp
>     with map_exceptions(exc_map):
> /usr/lib/python3.11/contextlib.py:158: in __exit__
>     self.gen.throw(typ, value, traceback)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
> map = {<class 'TimeoutError'>: <class 'httpcore.ConnectTimeout'>, <class 
> 'OSError'>: <class 'httpcore.ConnectError'>, <class 
> 'anyio.BrokenResourceError'>: <class 'httpcore.ConnectError'>}
> 
>     @contextlib.contextmanager
>     def map_exceptions(map: ExceptionMapping) -> Iterator[None]:
>         try:
>             yield
>         except Exception as exc:  # noqa: PIE786
>             for from_exc, to_exc in map.items():
>                 if isinstance(exc, from_exc):
> >                   raise to_exc(exc) from exc
> E                   httpcore.ConnectError: All connection attempts failed
> 
> /usr/lib/python3/dist-packages/httpcore/_exceptions.py:14: ConnectError
> 
> The above exception was the direct cause of the following exception:
> 
>     @pytest.mark.usefixtures("concurrency")
>     async def test_lifespan_state_async_cm() -> None:
>         @contextlib.asynccontextmanager
>         async def lifespan(_app: ASGIApp) -> typing.AsyncGenerator:
>             yield {"foo": 1}
>     
>         async def get(request: Request) -> Response:
>             assert request.state.foo == 1
>             request.state.foo = 2
>             return PlainTextResponse(f"Hello {request.state.foo}")
>     
>         app = Starlette(lifespan=lifespan, routes=[Route("/get", get)])
>     
>         async with LifespanManager(app) as manager:
>             async with httpx.AsyncClient(
>                 app=manager.app, base_url="http://example.org";
>             ) as client:
> >               response = await client.get("/get")
> 
> tests/test_manager.py:246: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> /usr/lib/python3/dist-packages/httpx/_client.py:1801: in get
>     return await self.request(
> /usr/lib/python3/dist-packages/httpx/_client.py:1574: in request
>     return await self.send(request, auth=auth, 
> follow_redirects=follow_redirects)
> /usr/lib/python3/dist-packages/httpx/_client.py:1661: in send
>     response = await self._send_handling_auth(
> /usr/lib/python3/dist-packages/httpx/_client.py:1689: in _send_handling_auth
>     response = await self._send_handling_redirects(
> /usr/lib/python3/dist-packages/httpx/_client.py:1726: in 
> _send_handling_redirects
>     response = await self._send_single_request(request)
> /usr/lib/python3/dist-packages/httpx/_client.py:1763: in _send_single_request
>     response = await transport.handle_async_request(request)
> /usr/lib/python3/dist-packages/httpx/_transports/default.py:372: in 
> handle_async_request
>     with map_httpcore_exceptions():
> /usr/lib/python3.11/contextlib.py:158: in __exit__
>     self.gen.throw(typ, value, traceback)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
>     @contextlib.contextmanager
>     def map_httpcore_exceptions() -> typing.Iterator[None]:
>         try:
>             yield
>         except Exception as exc:
>             mapped_exc = None
>     
>             for from_exc, to_exc in HTTPCORE_EXC_MAP.items():
>                 if not isinstance(exc, from_exc):
>                     continue
>                 # We want to map to the most specific exception we can find.
>                 # Eg if `exc` is an `httpcore.ReadTimeout`, we want to map to
>                 # `httpx.ReadTimeout`, not just `httpx.TimeoutException`.
>                 if mapped_exc is None or issubclass(to_exc, mapped_exc):
>                     mapped_exc = to_exc
>     
>             if mapped_exc is None:  # pragma: no cover
>                 raise
>     
>             message = str(exc)
> >           raise mapped_exc(message) from exc
> E           httpx.ConnectError: All connection attempts failed
> 
> /usr/lib/python3/dist-packages/httpx/_transports/default.py:86: ConnectError
> ______________________ test_lifespan_state_async_cm[trio] 
> ______________________
> 
>     @contextlib.contextmanager
>     def map_httpcore_exceptions() -> typing.Iterator[None]:
>         try:
> >           yield
> 
> /usr/lib/python3/dist-packages/httpx/_transports/default.py:69: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> /usr/lib/python3/dist-packages/httpx/_transports/default.py:373: in 
> handle_async_request
>     resp = await self._pool.handle_async_request(req)
> /usr/lib/python3/dist-packages/httpcore/_async/connection_pool.py:216: in 
> handle_async_request
>     raise exc from None
> /usr/lib/python3/dist-packages/httpcore/_async/connection_pool.py:196: in 
> handle_async_request
>     response = await connection.handle_async_request(
> /usr/lib/python3/dist-packages/httpcore/_async/http_proxy.py:207: in 
> handle_async_request
>     return await self._connection.handle_async_request(proxy_request)
> /usr/lib/python3/dist-packages/httpcore/_async/connection.py:99: in 
> handle_async_request
>     raise exc
> /usr/lib/python3/dist-packages/httpcore/_async/connection.py:76: in 
> handle_async_request
>     stream = await self._connect(request)
> /usr/lib/python3/dist-packages/httpcore/_async/connection.py:122: in _connect
>     stream = await self._network_backend.connect_tcp(**kwargs)
> /usr/lib/python3/dist-packages/httpcore/_backends/auto.py:30: in connect_tcp
>     return await self._backend.connect_tcp(
> /usr/lib/python3/dist-packages/httpcore/_backends/trio.py:130: in connect_tcp
>     with map_exceptions(exc_map):
> /usr/lib/python3.11/contextlib.py:158: in __exit__
>     self.gen.throw(typ, value, traceback)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
> map = {<class 'trio.TooSlowError'>: <class 'httpcore.ConnectTimeout'>, <class 
> 'trio.BrokenResourceError'>: <class 'httpcore.ConnectError'>, <class 
> 'OSError'>: <class 'httpcore.ConnectError'>}
> 
>     @contextlib.contextmanager
>     def map_exceptions(map: ExceptionMapping) -> Iterator[None]:
>         try:
>             yield
>         except Exception as exc:  # noqa: PIE786
>             for from_exc, to_exc in map.items():
>                 if isinstance(exc, from_exc):
> >                   raise to_exc(exc) from exc
> E                   httpcore.ConnectError: all attempts to connect to 
> 127.0.0.1:9 failed
> 
> /usr/lib/python3/dist-packages/httpcore/_exceptions.py:14: ConnectError
> 
> The above exception was the direct cause of the following exception:
> 
>     @pytest.mark.usefixtures("concurrency")
>     async def test_lifespan_state_async_cm() -> None:
>         @contextlib.asynccontextmanager
>         async def lifespan(_app: ASGIApp) -> typing.AsyncGenerator:
>             yield {"foo": 1}
>     
>         async def get(request: Request) -> Response:
>             assert request.state.foo == 1
>             request.state.foo = 2
>             return PlainTextResponse(f"Hello {request.state.foo}")
>     
>         app = Starlette(lifespan=lifespan, routes=[Route("/get", get)])
>     
>         async with LifespanManager(app) as manager:
>             async with httpx.AsyncClient(
>                 app=manager.app, base_url="http://example.org";
>             ) as client:
> >               response = await client.get("/get")
> 
> tests/test_manager.py:246: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> /usr/lib/python3/dist-packages/httpx/_client.py:1801: in get
>     return await self.request(
> /usr/lib/python3/dist-packages/httpx/_client.py:1574: in request
>     return await self.send(request, auth=auth, 
> follow_redirects=follow_redirects)
> /usr/lib/python3/dist-packages/httpx/_client.py:1661: in send
>     response = await self._send_handling_auth(
> /usr/lib/python3/dist-packages/httpx/_client.py:1689: in _send_handling_auth
>     response = await self._send_handling_redirects(
> /usr/lib/python3/dist-packages/httpx/_client.py:1726: in 
> _send_handling_redirects
>     response = await self._send_single_request(request)
> /usr/lib/python3/dist-packages/httpx/_client.py:1763: in _send_single_request
>     response = await transport.handle_async_request(request)
> /usr/lib/python3/dist-packages/httpx/_transports/default.py:372: in 
> handle_async_request
>     with map_httpcore_exceptions():
> /usr/lib/python3.11/contextlib.py:158: in __exit__
>     self.gen.throw(typ, value, traceback)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
>     @contextlib.contextmanager
>     def map_httpcore_exceptions() -> typing.Iterator[None]:
>         try:
>             yield
>         except Exception as exc:
>             mapped_exc = None
>     
>             for from_exc, to_exc in HTTPCORE_EXC_MAP.items():
>                 if not isinstance(exc, from_exc):
>                     continue
>                 # We want to map to the most specific exception we can find.
>                 # Eg if `exc` is an `httpcore.ReadTimeout`, we want to map to
>                 # `httpx.ReadTimeout`, not just `httpx.TimeoutException`.
>                 if mapped_exc is None or issubclass(to_exc, mapped_exc):
>                     mapped_exc = to_exc
>     
>             if mapped_exc is None:  # pragma: no cover
>                 raise
>     
>             message = str(exc)
> >           raise mapped_exc(message) from exc
> E           httpx.ConnectError: all attempts to connect to 127.0.0.1:9 failed
> 
> /usr/lib/python3/dist-packages/httpx/_transports/default.py:86: ConnectError
> =============================== warnings summary 
> ===============================
> tests/test_manager.py: 12 warnings
>   /usr/lib/python3/dist-packages/starlette/routing.py:616: 
> DeprecationWarning: The on_startup and on_shutdown parameters are deprecated, 
> and they will be removed on version 1.0. Use the lifespan parameter instead. 
> See more about it on https://www.starlette.io/lifespan/.
>     warnings.warn(
> 
> tests/test_manager.py::test_lifespan_state_async_cm[asyncio]
> tests/test_manager.py::test_lifespan_state_async_cm[trio]
>   /usr/lib/python3/dist-packages/httpx/_client.py:1426: DeprecationWarning: 
> The 'app' shortcut is now deprecated. Use the explicit style 
> 'transport=ASGITransport(app=...)' instead.
>     warnings.warn(message, DeprecationWarning)
> 
> -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
> =========================== short test summary info 
> ============================
> FAILED 
> ../../../../../../dev/tests/test_manager.py::test_lifespan_state_async_cm[asyncio]
> FAILED 
> ../../../../../../dev/tests/test_manager.py::test_lifespan_state_async_cm[trio]
> ============= 2 failed, 28 passed, 2 xfailed, 14 warnings in 0.97s 
> =============
> E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_asgi-lifespan/build; python3.11 -m 
> pytest -c /dev/null --asyncio-mode=strict -p no:cacheprovider
> 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/asgi-lifespan_2.1.0-2_unstable.log

All bugs filed during this archive rebuild are listed at:
https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=ftbfs-20240313;[email protected]
or:
https://udd.debian.org/bugs/?release=na&merged=ign&fnewerval=7&flastmodval=7&fusertag=only&fusertagtag=ftbfs-20240313&[email protected]&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.

--- End Message ---
--- Begin Message ---
Source: asgi-lifespan
Source-Version: 2.1.0-3
Done: Edward Betts <[email protected]>

We believe that the bug you reported is fixed in the latest version of
asgi-lifespan, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Edward Betts <[email protected]> (supplier of updated asgi-lifespan package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Format: 1.8
Date: Thu, 18 Jul 2024 03:56:56 +0900
Source: asgi-lifespan
Architecture: source
Version: 2.1.0-3
Distribution: unstable
Urgency: medium
Maintainer: Debian Python Team <[email protected]>
Changed-By: Edward Betts <[email protected]>
Closes: 1066787
Changes:
 asgi-lifespan (2.1.0-3) unstable; urgency=medium
 .
   * Skip failing tests marked 'trio' in debian/rules and in autopkgtest.
     (Closes: #1066787)
   * Update Standards-Version.
Checksums-Sha1:
 7b676a388e7adca7b8640132ba98a423b5bf81cd 2625 asgi-lifespan_2.1.0-3.dsc
 020812cf16298b539d8d8aaed62288e47c9ed9ac 2516 
asgi-lifespan_2.1.0-3.debian.tar.xz
 62c3f4c3bcc7f9c4860df69effd3d7515dfe8e42 8624 
asgi-lifespan_2.1.0-3_source.buildinfo
Checksums-Sha256:
 33235375983e60851f2104e1f4dcf343317998f239bcdac791857b02302ac431 2625 
asgi-lifespan_2.1.0-3.dsc
 87455ce6c5471fd495dfa4dadc2de00e458329b68d510140bf9952c563961e99 2516 
asgi-lifespan_2.1.0-3.debian.tar.xz
 b2e81cc467e0d7c6f4a5f0b815baf2a8b2a9f62d19bd412e5487be903b9b09c5 8624 
asgi-lifespan_2.1.0-3_source.buildinfo
Files:
 07cb5b9aee070aaae235a7a944c7a1c9 2625 python optional asgi-lifespan_2.1.0-3.dsc
 8850291c557b0c09e2818e4dedda9ab7 2516 python optional 
asgi-lifespan_2.1.0-3.debian.tar.xz
 969c1e3028bd614255c9dd2b5a77a066 8624 python optional 
asgi-lifespan_2.1.0-3_source.buildinfo

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEE+4rPp4xyYInDitAmlgWhCYxjuSoFAmaYFvIACgkQlgWhCYxj
uSp3+w//Vqesfp9a5VAkKUg2yRdMin+GX2ngkj1lGSCS0s4jIOXWCq+tWg9gS5Ic
HSqDLC+H/YRpgJt+eqBjN2gHm932LWDEk+Dvo5arKtpcN/WIqek5LhtWO4l6FGxH
K8H8qWCY9m8folSpmwUsNnM6QK2xAVjyf/IxZto/iK4yg6UVh3fWS70QOiuP715J
Tpy4xm96iFuryw/KRstr1e3Wtlp+eh53mh1UphiR2qzLV7e1KHtB3WMUuqAETl3a
Q89d8dqJpO7BCNKwLxaF6qZcYfaO/9JijA7qKb++MrNjqba5/N28NavmIIUOZDCO
FpQ9t7T4btw1LJ3A2cFWbLuuzxx8ejSrN4nD0XsTW7XiGWBufbCrUZcYsAL0QOLg
PlJQKkBVILfSRpVL75oRdq57adqyOwzO3+w5qvAUoAazNon5HWMJO+qcEjvE2MiK
uE6BFZDfIWylodZtJoTkaOX72tHTJBMxVyKYNa4b7TBbhrhoMmJBnsBOBxRDoHYQ
/ApywXzIGz2SDc2zbz8EDZivlz+rXCK9kt+nbkKvbdmA4n6o70R84v3r67X8XbKh
olh9PbRgU5NVjFkiY6JDT/P98uZF+YYa7TRKkIqKgnWEPWvvOkCh+3vy1xA+WoX8
mZNKMmh3aRN1EW5abYDKhpzLHTOMwNbwTeaiClCWaRO5nd1M+1k=
=Ugwm
-----END PGP SIGNATURE-----

Attachment: pgpJ_E_U7A2hB.pgp
Description: PGP signature


--- End Message ---

Reply via email to