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.