Source: python-asyncio-mqtt
Version: 0.16.1-3
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>>'
> echo "__version__ = version = '0.16.1'" > asyncio_mqtt/_version.py
> echo "__version_tuple__ = version_tuple = tuple('0.16.1'.split('.'))" >> 
> asyncio_mqtt/_version.py
> make[1]: Leaving directory '/<<PKGBUILDDIR>>'
>    dh_auto_build -O--buildsystem=pybuild
> 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_asyncio_mqtt  
> * Building wheel...
> running bdist_wheel
> running build
> running build_py
> creating build
> creating build/lib
> creating build/lib/asyncio_mqtt
> copying asyncio_mqtt/__init__.py -> build/lib/asyncio_mqtt
> copying asyncio_mqtt/error.py -> build/lib/asyncio_mqtt
> copying asyncio_mqtt/_version.py -> build/lib/asyncio_mqtt
> copying asyncio_mqtt/client.py -> build/lib/asyncio_mqtt
> copying asyncio_mqtt/types.py -> build/lib/asyncio_mqtt
> running egg_info
> creating asyncio_mqtt.egg-info
> writing asyncio_mqtt.egg-info/PKG-INFO
> writing dependency_links to asyncio_mqtt.egg-info/dependency_links.txt
> writing requirements to asyncio_mqtt.egg-info/requires.txt
> writing top-level names to asyncio_mqtt.egg-info/top_level.txt
> writing manifest file 'asyncio_mqtt.egg-info/SOURCES.txt'
> reading manifest file 'asyncio_mqtt.egg-info/SOURCES.txt'
> adding license file 'LICENSE'
> writing manifest file 'asyncio_mqtt.egg-info/SOURCES.txt'
> 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/asyncio_mqtt
> copying build/lib/asyncio_mqtt/__init__.py -> 
> build/bdist.linux-x86_64/wheel/asyncio_mqtt
> copying build/lib/asyncio_mqtt/error.py -> 
> build/bdist.linux-x86_64/wheel/asyncio_mqtt
> copying build/lib/asyncio_mqtt/_version.py -> 
> build/bdist.linux-x86_64/wheel/asyncio_mqtt
> copying build/lib/asyncio_mqtt/client.py -> 
> build/bdist.linux-x86_64/wheel/asyncio_mqtt
> copying build/lib/asyncio_mqtt/types.py -> 
> build/bdist.linux-x86_64/wheel/asyncio_mqtt
> running install_egg_info
> Copying asyncio_mqtt.egg-info to 
> build/bdist.linux-x86_64/wheel/asyncio_mqtt-0.0.0.egg-info
> running install_scripts
> creating build/bdist.linux-x86_64/wheel/asyncio_mqtt-0.0.0.dist-info/WHEEL
> creating 
> '/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_asyncio_mqtt/.tmp-nh8imiqf/asyncio_mqtt-0.0.0-py3-none-any.whl'
>  and adding 'build/bdist.linux-x86_64/wheel' to it
> adding 'asyncio_mqtt/__init__.py'
> adding 'asyncio_mqtt/_version.py'
> adding 'asyncio_mqtt/client.py'
> adding 'asyncio_mqtt/error.py'
> adding 'asyncio_mqtt/types.py'
> adding 'asyncio_mqtt-0.0.0.dist-info/LICENSE'
> adding 'asyncio_mqtt-0.0.0.dist-info/METADATA'
> adding 'asyncio_mqtt-0.0.0.dist-info/WHEEL'
> adding 'asyncio_mqtt-0.0.0.dist-info/top_level.txt'
> adding 'asyncio_mqtt-0.0.0.dist-info/RECORD'
> removing build/bdist.linux-x86_64/wheel
> Successfully built asyncio_mqtt-0.0.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.11_asyncio_mqtt/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_asyncio_mqtt/build
> configfile: pyproject.toml
> plugins: anyio-4.2.0
> collected 50 items
> 
> tests/test_client.py ...ssssFFFsssssssss                                 [ 
> 38%]
> tests/test_error.py ..................FFF.......FFF                      
> [100%]
> 
> =================================== FAILURES 
> ===================================
> _____________________________ test_client_id[3-22] 
> _____________________________
> 
> protocol = <ProtocolVersion.V31: 3>, length = 22
> 
>     @pytest.mark.parametrize(
>         "protocol, length",
>         ((ProtocolVersion.V31, 22), (ProtocolVersion.V311, 0), 
> (ProtocolVersion.V5, 0)),
>     )
>     async def test_client_id(protocol: ProtocolVersion, length: int) -> None:
> >       client = Client(HOSTNAME, protocol=protocol)
> 
> tests/test_client.py:187: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
> self = <asyncio_mqtt.client.Client object at 0x7fc604cef8d0>
> hostname = 'test.mosquitto.org', port = 1883
> 
>     def __init__(  # noqa: C901
>         self,
>         hostname: str,
>         port: int = 1883,
>         *,
>         username: str | None = None,
>         password: str | None = None,
>         logger: logging.Logger | None = None,
>         client_id: str | None = None,
>         tls_context: ssl.SSLContext | None = None,
>         tls_params: TLSParameters | None = None,
>         proxy: ProxySettings | None = None,
>         protocol: ProtocolVersion | None = None,
>         will: Will | None = None,
>         clean_session: bool | None = None,
>         transport: str = "tcp",
>         keepalive: int = 60,
>         bind_address: str = "",
>         bind_port: int = 0,
>         clean_start: int = mqtt.MQTT_CLEAN_START_FIRST_ONLY,
>         properties: Properties | None = None,
>         message_retry_set: int = 20,
>         socket_options: Iterable[SocketOption] | None = None,
>         max_concurrent_outgoing_calls: int | None = None,
>         websocket_path: str | None = None,
>         websocket_headers: WebSocketHeaders | None = None,
>     ):
>         self._hostname = hostname
>         self._port = port
>         self._keepalive = keepalive
>         self._bind_address = bind_address
>         self._bind_port = bind_port
>         self._clean_start = clean_start
>         self._properties = properties
>         self._loop = asyncio.get_event_loop()
>         self._connected: asyncio.Future[int | mqtt.ReasonCodes] = 
> asyncio.Future()
>         self._disconnected: asyncio.Future[
>             int | mqtt.ReasonCodes | None
>         ] = asyncio.Future()
>         # Pending subscribe, unsubscribe, and publish calls
>         self._pending_subscribes: dict[
>             int, asyncio.Future[tuple[int] | list[mqtt.ReasonCodes]]
>         ] = {}
>         self._pending_unsubscribes: dict[int, asyncio.Event] = {}
>         self._pending_publishes: dict[int, asyncio.Event] = {}
>         self._pending_calls_threshold: int = 10
>         self._misc_task: asyncio.Task[None] | None = None
>     
>         # List of all callbacks to call when a message is received
>         self._on_message_callbacks: list[Callable[[Message], None]] = []
>         self._unfiltered_messages_callback: Callable[
>             [mqtt.Client, Any, mqtt.MQTTMessage], None
>         ] | None = None
>     
>         self._outgoing_calls_sem: asyncio.Semaphore | None
>         if max_concurrent_outgoing_calls is not None:
>             self._outgoing_calls_sem = 
> asyncio.Semaphore(max_concurrent_outgoing_calls)
>         else:
>             self._outgoing_calls_sem = None
>     
>         if protocol is None:
>             protocol = ProtocolVersion.V311
>     
> >       self._client: mqtt.Client = mqtt.Client(
>             client_id=client_id,
>             protocol=protocol,
>             clean_session=clean_session,
>             transport=transport,
>             reconnect_on_failure=False,
>         )
> E       TypeError: Client.__init__() missing 1 required positional argument: 
> 'callback_api_version'
> 
> asyncio_mqtt/client.py:292: TypeError
> 
> During handling of the above exception, another exception occurred:
> 
> cls = <class '_pytest.runner.CallInfo'>
> func = <function call_runtest_hook.<locals>.<lambda> at 0x7fc605476840>
> when = 'call'
> reraise = (<class '_pytest.outcomes.Exit'>, <class 'KeyboardInterrupt'>)
> 
>     @classmethod
>     def from_call(
>         cls,
>         func: Callable[[], TResult],
>         when: Literal["collect", "setup", "call", "teardown"],
>         reraise: Optional[
>             Union[Type[BaseException], Tuple[Type[BaseException], ...]]
>         ] = None,
>     ) -> "CallInfo[TResult]":
>         """Call func, wrapping the result in a CallInfo.
>     
>         :param func:
>             The function to call. Called without arguments.
>         :param when:
>             The phase in which the function is called.
>         :param reraise:
>             Exception or exceptions that shall propagate if raised by the
>             function, instead of being wrapped in the CallInfo.
>         """
>         excinfo = None
>         start = timing.time()
>         precise_start = timing.perf_counter()
>         try:
> >           result: Optional[TResult] = func()
> 
> /usr/lib/python3/dist-packages/_pytest/runner.py:342: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> /usr/lib/python3/dist-packages/_pytest/runner.py:263: in <lambda>
>     lambda: ihook(item=item, **kwds), when=when, reraise=reraise
> /usr/lib/python3/dist-packages/pluggy/_hooks.py:501: in __call__
>     return self._hookexec(self.name, self._hookimpls.copy(), kwargs, 
> firstresult)
> /usr/lib/python3/dist-packages/pluggy/_manager.py:119: in _hookexec
>     return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
> /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
> /usr/lib/python3/dist-packages/_pytest/unraisableexception.py:90: in 
> pytest_runtest_call
>     yield from unraisable_exception_runtest_hook()
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
>     def unraisable_exception_runtest_hook() -> Generator[None, None, None]:
>         with catch_unraisable_exception() as cm:
>             try:
>                 yield
>             finally:
>                 if cm.unraisable:
>                     if cm.unraisable.err_msg is not None:
>                         err_msg = cm.unraisable.err_msg
>                     else:
>                         err_msg = "Exception ignored in"
>                     msg = f"{err_msg}: {cm.unraisable.object!r}\n\n"
>                     msg += "".join(
>                         traceback.format_exception(
>                             cm.unraisable.exc_type,
>                             cm.unraisable.exc_value,
>                             cm.unraisable.exc_traceback,
>                         )
>                     )
> >                   
> > warnings.warn(pytest.PytestUnraisableExceptionWarning(msg))
> E                   pytest.PytestUnraisableExceptionWarning: Exception 
> ignored in: <function Client.__del__ at 0x7fc604d93560>
> E                   
> E                   Traceback (most recent call last):
> E                     File 
> "/usr/lib/python3/dist-packages/paho/mqtt/client.py", line 874, in __del__
> E                       self._reset_sockets()
> E                     File 
> "/usr/lib/python3/dist-packages/paho/mqtt/client.py", line 1133, in 
> _reset_sockets
> E                       self._sock_close()
> E                     File 
> "/usr/lib/python3/dist-packages/paho/mqtt/client.py", line 1119, in 
> _sock_close
> E                       if not self._sock:
> E                              ^^^^^^^^^^
> E                   AttributeError: 'Client' object has no attribute '_sock'
> 
> /usr/lib/python3/dist-packages/_pytest/unraisableexception.py:80: 
> PytestUnraisableExceptionWarning
> _____________________________ test_client_id[4-0] 
> ______________________________
> 
> protocol = <ProtocolVersion.V311: 4>, length = 0
> 
>     @pytest.mark.parametrize(
>         "protocol, length",
>         ((ProtocolVersion.V31, 22), (ProtocolVersion.V311, 0), 
> (ProtocolVersion.V5, 0)),
>     )
>     async def test_client_id(protocol: ProtocolVersion, length: int) -> None:
> >       client = Client(HOSTNAME, protocol=protocol)
> 
> tests/test_client.py:187: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
> self = <asyncio_mqtt.client.Client object at 0x7fc604987b90>
> hostname = 'test.mosquitto.org', port = 1883
> 
>     def __init__(  # noqa: C901
>         self,
>         hostname: str,
>         port: int = 1883,
>         *,
>         username: str | None = None,
>         password: str | None = None,
>         logger: logging.Logger | None = None,
>         client_id: str | None = None,
>         tls_context: ssl.SSLContext | None = None,
>         tls_params: TLSParameters | None = None,
>         proxy: ProxySettings | None = None,
>         protocol: ProtocolVersion | None = None,
>         will: Will | None = None,
>         clean_session: bool | None = None,
>         transport: str = "tcp",
>         keepalive: int = 60,
>         bind_address: str = "",
>         bind_port: int = 0,
>         clean_start: int = mqtt.MQTT_CLEAN_START_FIRST_ONLY,
>         properties: Properties | None = None,
>         message_retry_set: int = 20,
>         socket_options: Iterable[SocketOption] | None = None,
>         max_concurrent_outgoing_calls: int | None = None,
>         websocket_path: str | None = None,
>         websocket_headers: WebSocketHeaders | None = None,
>     ):
>         self._hostname = hostname
>         self._port = port
>         self._keepalive = keepalive
>         self._bind_address = bind_address
>         self._bind_port = bind_port
>         self._clean_start = clean_start
>         self._properties = properties
>         self._loop = asyncio.get_event_loop()
>         self._connected: asyncio.Future[int | mqtt.ReasonCodes] = 
> asyncio.Future()
>         self._disconnected: asyncio.Future[
>             int | mqtt.ReasonCodes | None
>         ] = asyncio.Future()
>         # Pending subscribe, unsubscribe, and publish calls
>         self._pending_subscribes: dict[
>             int, asyncio.Future[tuple[int] | list[mqtt.ReasonCodes]]
>         ] = {}
>         self._pending_unsubscribes: dict[int, asyncio.Event] = {}
>         self._pending_publishes: dict[int, asyncio.Event] = {}
>         self._pending_calls_threshold: int = 10
>         self._misc_task: asyncio.Task[None] | None = None
>     
>         # List of all callbacks to call when a message is received
>         self._on_message_callbacks: list[Callable[[Message], None]] = []
>         self._unfiltered_messages_callback: Callable[
>             [mqtt.Client, Any, mqtt.MQTTMessage], None
>         ] | None = None
>     
>         self._outgoing_calls_sem: asyncio.Semaphore | None
>         if max_concurrent_outgoing_calls is not None:
>             self._outgoing_calls_sem = 
> asyncio.Semaphore(max_concurrent_outgoing_calls)
>         else:
>             self._outgoing_calls_sem = None
>     
>         if protocol is None:
>             protocol = ProtocolVersion.V311
>     
> >       self._client: mqtt.Client = mqtt.Client(
>             client_id=client_id,
>             protocol=protocol,
>             clean_session=clean_session,
>             transport=transport,
>             reconnect_on_failure=False,
>         )
> E       TypeError: Client.__init__() missing 1 required positional argument: 
> 'callback_api_version'
> 
> asyncio_mqtt/client.py:292: TypeError
> 
> During handling of the above exception, another exception occurred:
> 
> cls = <class '_pytest.runner.CallInfo'>
> func = <function call_runtest_hook.<locals>.<lambda> at 0x7fc604ce8f40>
> when = 'call'
> reraise = (<class '_pytest.outcomes.Exit'>, <class 'KeyboardInterrupt'>)
> 
>     @classmethod
>     def from_call(
>         cls,
>         func: Callable[[], TResult],
>         when: Literal["collect", "setup", "call", "teardown"],
>         reraise: Optional[
>             Union[Type[BaseException], Tuple[Type[BaseException], ...]]
>         ] = None,
>     ) -> "CallInfo[TResult]":
>         """Call func, wrapping the result in a CallInfo.
>     
>         :param func:
>             The function to call. Called without arguments.
>         :param when:
>             The phase in which the function is called.
>         :param reraise:
>             Exception or exceptions that shall propagate if raised by the
>             function, instead of being wrapped in the CallInfo.
>         """
>         excinfo = None
>         start = timing.time()
>         precise_start = timing.perf_counter()
>         try:
> >           result: Optional[TResult] = func()
> 
> /usr/lib/python3/dist-packages/_pytest/runner.py:342: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> /usr/lib/python3/dist-packages/_pytest/runner.py:263: in <lambda>
>     lambda: ihook(item=item, **kwds), when=when, reraise=reraise
> /usr/lib/python3/dist-packages/pluggy/_hooks.py:501: in __call__
>     return self._hookexec(self.name, self._hookimpls.copy(), kwargs, 
> firstresult)
> /usr/lib/python3/dist-packages/pluggy/_manager.py:119: in _hookexec
>     return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
> /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
> /usr/lib/python3/dist-packages/_pytest/unraisableexception.py:90: in 
> pytest_runtest_call
>     yield from unraisable_exception_runtest_hook()
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
>     def unraisable_exception_runtest_hook() -> Generator[None, None, None]:
>         with catch_unraisable_exception() as cm:
>             try:
>                 yield
>             finally:
>                 if cm.unraisable:
>                     if cm.unraisable.err_msg is not None:
>                         err_msg = cm.unraisable.err_msg
>                     else:
>                         err_msg = "Exception ignored in"
>                     msg = f"{err_msg}: {cm.unraisable.object!r}\n\n"
>                     msg += "".join(
>                         traceback.format_exception(
>                             cm.unraisable.exc_type,
>                             cm.unraisable.exc_value,
>                             cm.unraisable.exc_traceback,
>                         )
>                     )
> >                   
> > warnings.warn(pytest.PytestUnraisableExceptionWarning(msg))
> E                   pytest.PytestUnraisableExceptionWarning: Exception 
> ignored in: <function Client.__del__ at 0x7fc604d93560>
> E                   
> E                   Traceback (most recent call last):
> E                     File 
> "/usr/lib/python3/dist-packages/paho/mqtt/client.py", line 874, in __del__
> E                       self._reset_sockets()
> E                     File 
> "/usr/lib/python3/dist-packages/paho/mqtt/client.py", line 1133, in 
> _reset_sockets
> E                       self._sock_close()
> E                     File 
> "/usr/lib/python3/dist-packages/paho/mqtt/client.py", line 1119, in 
> _sock_close
> E                       if not self._sock:
> E                              ^^^^^^^^^^
> E                   AttributeError: 'Client' object has no attribute '_sock'
> 
> /usr/lib/python3/dist-packages/_pytest/unraisableexception.py:80: 
> PytestUnraisableExceptionWarning
> _____________________________ test_client_id[5-0] 
> ______________________________
> 
> protocol = <ProtocolVersion.V5: 5>, length = 0
> 
>     @pytest.mark.parametrize(
>         "protocol, length",
>         ((ProtocolVersion.V31, 22), (ProtocolVersion.V311, 0), 
> (ProtocolVersion.V5, 0)),
>     )
>     async def test_client_id(protocol: ProtocolVersion, length: int) -> None:
> >       client = Client(HOSTNAME, protocol=protocol)
> 
> tests/test_client.py:187: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
> self = <asyncio_mqtt.client.Client object at 0x7fc604a3d9d0>
> hostname = 'test.mosquitto.org', port = 1883
> 
>     def __init__(  # noqa: C901
>         self,
>         hostname: str,
>         port: int = 1883,
>         *,
>         username: str | None = None,
>         password: str | None = None,
>         logger: logging.Logger | None = None,
>         client_id: str | None = None,
>         tls_context: ssl.SSLContext | None = None,
>         tls_params: TLSParameters | None = None,
>         proxy: ProxySettings | None = None,
>         protocol: ProtocolVersion | None = None,
>         will: Will | None = None,
>         clean_session: bool | None = None,
>         transport: str = "tcp",
>         keepalive: int = 60,
>         bind_address: str = "",
>         bind_port: int = 0,
>         clean_start: int = mqtt.MQTT_CLEAN_START_FIRST_ONLY,
>         properties: Properties | None = None,
>         message_retry_set: int = 20,
>         socket_options: Iterable[SocketOption] | None = None,
>         max_concurrent_outgoing_calls: int | None = None,
>         websocket_path: str | None = None,
>         websocket_headers: WebSocketHeaders | None = None,
>     ):
>         self._hostname = hostname
>         self._port = port
>         self._keepalive = keepalive
>         self._bind_address = bind_address
>         self._bind_port = bind_port
>         self._clean_start = clean_start
>         self._properties = properties
>         self._loop = asyncio.get_event_loop()
>         self._connected: asyncio.Future[int | mqtt.ReasonCodes] = 
> asyncio.Future()
>         self._disconnected: asyncio.Future[
>             int | mqtt.ReasonCodes | None
>         ] = asyncio.Future()
>         # Pending subscribe, unsubscribe, and publish calls
>         self._pending_subscribes: dict[
>             int, asyncio.Future[tuple[int] | list[mqtt.ReasonCodes]]
>         ] = {}
>         self._pending_unsubscribes: dict[int, asyncio.Event] = {}
>         self._pending_publishes: dict[int, asyncio.Event] = {}
>         self._pending_calls_threshold: int = 10
>         self._misc_task: asyncio.Task[None] | None = None
>     
>         # List of all callbacks to call when a message is received
>         self._on_message_callbacks: list[Callable[[Message], None]] = []
>         self._unfiltered_messages_callback: Callable[
>             [mqtt.Client, Any, mqtt.MQTTMessage], None
>         ] | None = None
>     
>         self._outgoing_calls_sem: asyncio.Semaphore | None
>         if max_concurrent_outgoing_calls is not None:
>             self._outgoing_calls_sem = 
> asyncio.Semaphore(max_concurrent_outgoing_calls)
>         else:
>             self._outgoing_calls_sem = None
>     
>         if protocol is None:
>             protocol = ProtocolVersion.V311
>     
> >       self._client: mqtt.Client = mqtt.Client(
>             client_id=client_id,
>             protocol=protocol,
>             clean_session=clean_session,
>             transport=transport,
>             reconnect_on_failure=False,
>         )
> E       TypeError: Client.__init__() missing 1 required positional argument: 
> 'callback_api_version'
> 
> asyncio_mqtt/client.py:292: TypeError
> 
> During handling of the above exception, another exception occurred:
> 
> cls = <class '_pytest.runner.CallInfo'>
> func = <function call_runtest_hook.<locals>.<lambda> at 0x7fc604ce9120>
> when = 'call'
> reraise = (<class '_pytest.outcomes.Exit'>, <class 'KeyboardInterrupt'>)
> 
>     @classmethod
>     def from_call(
>         cls,
>         func: Callable[[], TResult],
>         when: Literal["collect", "setup", "call", "teardown"],
>         reraise: Optional[
>             Union[Type[BaseException], Tuple[Type[BaseException], ...]]
>         ] = None,
>     ) -> "CallInfo[TResult]":
>         """Call func, wrapping the result in a CallInfo.
>     
>         :param func:
>             The function to call. Called without arguments.
>         :param when:
>             The phase in which the function is called.
>         :param reraise:
>             Exception or exceptions that shall propagate if raised by the
>             function, instead of being wrapped in the CallInfo.
>         """
>         excinfo = None
>         start = timing.time()
>         precise_start = timing.perf_counter()
>         try:
> >           result: Optional[TResult] = func()
> 
> /usr/lib/python3/dist-packages/_pytest/runner.py:342: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> /usr/lib/python3/dist-packages/_pytest/runner.py:263: in <lambda>
>     lambda: ihook(item=item, **kwds), when=when, reraise=reraise
> /usr/lib/python3/dist-packages/pluggy/_hooks.py:501: in __call__
>     return self._hookexec(self.name, self._hookimpls.copy(), kwargs, 
> firstresult)
> /usr/lib/python3/dist-packages/pluggy/_manager.py:119: in _hookexec
>     return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
> /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
> /usr/lib/python3/dist-packages/_pytest/unraisableexception.py:90: in 
> pytest_runtest_call
>     yield from unraisable_exception_runtest_hook()
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
>     def unraisable_exception_runtest_hook() -> Generator[None, None, None]:
>         with catch_unraisable_exception() as cm:
>             try:
>                 yield
>             finally:
>                 if cm.unraisable:
>                     if cm.unraisable.err_msg is not None:
>                         err_msg = cm.unraisable.err_msg
>                     else:
>                         err_msg = "Exception ignored in"
>                     msg = f"{err_msg}: {cm.unraisable.object!r}\n\n"
>                     msg += "".join(
>                         traceback.format_exception(
>                             cm.unraisable.exc_type,
>                             cm.unraisable.exc_value,
>                             cm.unraisable.exc_traceback,
>                         )
>                     )
> >                   
> > warnings.warn(pytest.PytestUnraisableExceptionWarning(msg))
> E                   pytest.PytestUnraisableExceptionWarning: Exception 
> ignored in: <function Client.__del__ at 0x7fc604d93560>
> E                   
> E                   Traceback (most recent call last):
> E                     File 
> "/usr/lib/python3/dist-packages/paho/mqtt/client.py", line 874, in __del__
> E                       self._reset_sockets()
> E                     File 
> "/usr/lib/python3/dist-packages/paho/mqtt/client.py", line 1133, in 
> _reset_sockets
> E                       self._sock_close()
> E                     File 
> "/usr/lib/python3/dist-packages/paho/mqtt/client.py", line 1119, in 
> _sock_close
> E                       if not self._sock:
> E                              ^^^^^^^^^^
> E                   AttributeError: 'Client' object has no attribute '_sock'
> 
> /usr/lib/python3/dist-packages/_pytest/unraisableexception.py:80: 
> PytestUnraisableExceptionWarning
> _________________ test_mqtt_code_error_reason_codes[2-Success] 
> _________________
> 
> packet_type = 2, a_name = 'Success'
> 
>     @pytest.mark.parametrize(
>         "packet_type, a_name",
>         (
>             (PacketTypes.CONNACK, "Success"),
>             (PacketTypes.PUBACK, "Success"),
>             (PacketTypes.SUBACK, "Granted QoS 1"),
>         ),
>     )
>     def test_mqtt_code_error_reason_codes(packet_type: int, a_name: str) -> 
> None:
> >       rc = mqtt.ReasonCodes(packet_type, a_name)
> 
> tests/test_error.py:44: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
> self = <[AttributeError("'ReasonCodes' object has no attribute 'packetType'") 
> raised in repr()] ReasonCodes object at 0x7fc6046182d0>
> args = (2, 'Success'), kwargs = {}
> 
>     def __init__(self, *args, **kwargs):
> >       warnings.warn("ReasonCodes is deprecated, use ReasonCode (singular) 
> > instead",
>             category=DeprecationWarning,
>             stacklevel=2,
>         )
> E       DeprecationWarning: ReasonCodes is deprecated, use ReasonCode 
> (singular) instead
> 
> /usr/lib/python3/dist-packages/paho/mqtt/reasoncodes.py:219: 
> DeprecationWarning
> _________________ test_mqtt_code_error_reason_codes[4-Success] 
> _________________
> 
> packet_type = 4, a_name = 'Success'
> 
>     @pytest.mark.parametrize(
>         "packet_type, a_name",
>         (
>             (PacketTypes.CONNACK, "Success"),
>             (PacketTypes.PUBACK, "Success"),
>             (PacketTypes.SUBACK, "Granted QoS 1"),
>         ),
>     )
>     def test_mqtt_code_error_reason_codes(packet_type: int, a_name: str) -> 
> None:
> >       rc = mqtt.ReasonCodes(packet_type, a_name)
> 
> tests/test_error.py:44: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
> self = <[AttributeError("'ReasonCodes' object has no attribute 'packetType'") 
> raised in repr()] ReasonCodes object at 0x7fc604614f90>
> args = (4, 'Success'), kwargs = {}
> 
>     def __init__(self, *args, **kwargs):
> >       warnings.warn("ReasonCodes is deprecated, use ReasonCode (singular) 
> > instead",
>             category=DeprecationWarning,
>             stacklevel=2,
>         )
> E       DeprecationWarning: ReasonCodes is deprecated, use ReasonCode 
> (singular) instead
> 
> /usr/lib/python3/dist-packages/paho/mqtt/reasoncodes.py:219: 
> DeprecationWarning
> ______________ test_mqtt_code_error_reason_codes[9-Granted QoS 1] 
> ______________
> 
> packet_type = 9, a_name = 'Granted QoS 1'
> 
>     @pytest.mark.parametrize(
>         "packet_type, a_name",
>         (
>             (PacketTypes.CONNACK, "Success"),
>             (PacketTypes.PUBACK, "Success"),
>             (PacketTypes.SUBACK, "Granted QoS 1"),
>         ),
>     )
>     def test_mqtt_code_error_reason_codes(packet_type: int, a_name: str) -> 
> None:
> >       rc = mqtt.ReasonCodes(packet_type, a_name)
> 
> tests/test_error.py:44: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
> self = <[AttributeError("'ReasonCodes' object has no attribute 'packetType'") 
> raised in repr()] ReasonCodes object at 0x7fc604a11cd0>
> args = (9, 'Granted QoS 1'), kwargs = {}
> 
>     def __init__(self, *args, **kwargs):
> >       warnings.warn("ReasonCodes is deprecated, use ReasonCode (singular) 
> > instead",
>             category=DeprecationWarning,
>             stacklevel=2,
>         )
> E       DeprecationWarning: ReasonCodes is deprecated, use ReasonCode 
> (singular) instead
> 
> /usr/lib/python3/dist-packages/paho/mqtt/reasoncodes.py:219: 
> DeprecationWarning
> _______________ test_mqtt_connect_error_reason_codes[2-Success] 
> ________________
> 
> packet_type = 2, a_name = 'Success'
> 
>     @pytest.mark.parametrize(
>         "packet_type, a_name",
>         (
>             (PacketTypes.CONNACK, "Success"),
>             (PacketTypes.PUBACK, "Success"),
>             (PacketTypes.SUBACK, "Granted QoS 1"),
>         ),
>     )
>     def test_mqtt_connect_error_reason_codes(packet_type: int, a_name: str) 
> -> None:
> >       rc = mqtt.ReasonCodes(packet_type, a_name)
> 
> tests/test_error.py:71: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
> self = <[AttributeError("'ReasonCodes' object has no attribute 'packetType'") 
> raised in repr()] ReasonCodes object at 0x7fc604a33f50>
> args = (2, 'Success'), kwargs = {}
> 
>     def __init__(self, *args, **kwargs):
> >       warnings.warn("ReasonCodes is deprecated, use ReasonCode (singular) 
> > instead",
>             category=DeprecationWarning,
>             stacklevel=2,
>         )
> E       DeprecationWarning: ReasonCodes is deprecated, use ReasonCode 
> (singular) instead
> 
> /usr/lib/python3/dist-packages/paho/mqtt/reasoncodes.py:219: 
> DeprecationWarning
> _______________ test_mqtt_connect_error_reason_codes[4-Success] 
> ________________
> 
> packet_type = 4, a_name = 'Success'
> 
>     @pytest.mark.parametrize(
>         "packet_type, a_name",
>         (
>             (PacketTypes.CONNACK, "Success"),
>             (PacketTypes.PUBACK, "Success"),
>             (PacketTypes.SUBACK, "Granted QoS 1"),
>         ),
>     )
>     def test_mqtt_connect_error_reason_codes(packet_type: int, a_name: str) 
> -> None:
> >       rc = mqtt.ReasonCodes(packet_type, a_name)
> 
> tests/test_error.py:71: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
> self = <[AttributeError("'ReasonCodes' object has no attribute 'packetType'") 
> raised in repr()] ReasonCodes object at 0x7fc604616410>
> args = (4, 'Success'), kwargs = {}
> 
>     def __init__(self, *args, **kwargs):
> >       warnings.warn("ReasonCodes is deprecated, use ReasonCode (singular) 
> > instead",
>             category=DeprecationWarning,
>             stacklevel=2,
>         )
> E       DeprecationWarning: ReasonCodes is deprecated, use ReasonCode 
> (singular) instead
> 
> /usr/lib/python3/dist-packages/paho/mqtt/reasoncodes.py:219: 
> DeprecationWarning
> ____________ test_mqtt_connect_error_reason_codes[9-Granted QoS 1] 
> _____________
> 
> packet_type = 9, a_name = 'Granted QoS 1'
> 
>     @pytest.mark.parametrize(
>         "packet_type, a_name",
>         (
>             (PacketTypes.CONNACK, "Success"),
>             (PacketTypes.PUBACK, "Success"),
>             (PacketTypes.SUBACK, "Granted QoS 1"),
>         ),
>     )
>     def test_mqtt_connect_error_reason_codes(packet_type: int, a_name: str) 
> -> None:
> >       rc = mqtt.ReasonCodes(packet_type, a_name)
> 
> tests/test_error.py:71: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
> self = <[AttributeError("'ReasonCodes' object has no attribute 'packetType'") 
> raised in repr()] ReasonCodes object at 0x7fc6048f3d90>
> args = (9, 'Granted QoS 1'), kwargs = {}
> 
>     def __init__(self, *args, **kwargs):
> >       warnings.warn("ReasonCodes is deprecated, use ReasonCode (singular) 
> > instead",
>             category=DeprecationWarning,
>             stacklevel=2,
>         )
> E       DeprecationWarning: ReasonCodes is deprecated, use ReasonCode 
> (singular) instead
> 
> /usr/lib/python3/dist-packages/paho/mqtt/reasoncodes.py:219: 
> DeprecationWarning
> =========================== short test summary info 
> ============================
> FAILED tests/test_client.py::test_client_id[3-22] - 
> pytest.PytestUnraisableEx...
> FAILED tests/test_client.py::test_client_id[4-0] - 
> pytest.PytestUnraisableExc...
> FAILED tests/test_client.py::test_client_id[5-0] - 
> pytest.PytestUnraisableExc...
> FAILED tests/test_error.py::test_mqtt_code_error_reason_codes[2-Success] - 
> De...
> FAILED tests/test_error.py::test_mqtt_code_error_reason_codes[4-Success] - 
> De...
> FAILED tests/test_error.py::test_mqtt_code_error_reason_codes[9-Granted QoS 1]
> FAILED tests/test_error.py::test_mqtt_connect_error_reason_codes[2-Success]
> FAILED tests/test_error.py::test_mqtt_connect_error_reason_codes[4-Success]
> FAILED tests/test_error.py::test_mqtt_connect_error_reason_codes[9-Granted 
> QoS 1]
> =================== 9 failed, 28 passed, 13 skipped in 0.38s 
> ===================
> E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_asyncio_mqtt/build; python3.11 -m 
> pytest tests
> dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.11 
> returned exit code 13


The full build log is available from:
http://qa-logs.debian.net/2024/03/13/python-asyncio-mqtt_0.16.1-3_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