Source: aiosmtplib Version: 1.1.6-2 Severity: serious Justification: FTBFS Tags: bookworm sid ftbfs User: lu...@debian.org Usertags: ftbfs-20221220 ftbfs-bookworm
Hi, During a rebuild of all packages in sid, your package failed to build on amd64. Relevant part (hopefully): > debian/rules binary > dh binary --with python3,sphinxdoc --buildsystem=pybuild > dh_update_autotools_config -O--buildsystem=pybuild > dh_autoreconf -O--buildsystem=pybuild > dh_auto_configure -O--buildsystem=pybuild > pybuild --configure -i python{version} -p "3.11 3.10" > I: pybuild base:240: python3.11 setup.py config > running config > I: pybuild base:240: python3.10 setup.py config > running config > dh_auto_build -O--buildsystem=pybuild > pybuild --build -i python{version} -p "3.11 3.10" > I: pybuild base:240: /usr/bin/python3.11 setup.py build > running build > running build_py > creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aiosmtplib/build/aiosmtplib > copying aiosmtplib/__init__.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aiosmtplib/build/aiosmtplib > copying aiosmtplib/status.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aiosmtplib/build/aiosmtplib > copying aiosmtplib/response.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aiosmtplib/build/aiosmtplib > copying aiosmtplib/__main__.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aiosmtplib/build/aiosmtplib > copying aiosmtplib/errors.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aiosmtplib/build/aiosmtplib > copying aiosmtplib/api.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aiosmtplib/build/aiosmtplib > copying aiosmtplib/default.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aiosmtplib/build/aiosmtplib > copying aiosmtplib/esmtp.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aiosmtplib/build/aiosmtplib > copying aiosmtplib/auth.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aiosmtplib/build/aiosmtplib > copying aiosmtplib/sync.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aiosmtplib/build/aiosmtplib > copying aiosmtplib/smtp.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aiosmtplib/build/aiosmtplib > copying aiosmtplib/compat.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aiosmtplib/build/aiosmtplib > copying aiosmtplib/email.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aiosmtplib/build/aiosmtplib > copying aiosmtplib/protocol.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aiosmtplib/build/aiosmtplib > copying aiosmtplib/connection.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aiosmtplib/build/aiosmtplib > creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aiosmtplib/build/docs > copying docs/conf.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aiosmtplib/build/docs > creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aiosmtplib/build/tests > copying tests/__init__.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aiosmtplib/build/tests > copying tests/test_asyncio.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aiosmtplib/build/tests > copying tests/test_compat.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aiosmtplib/build/tests > copying tests/test_connect.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aiosmtplib/build/tests > copying tests/test_api.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aiosmtplib/build/tests > copying tests/test_response.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aiosmtplib/build/tests > copying tests/test_esmtp_utils.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aiosmtplib/build/tests > copying tests/test_live.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aiosmtplib/build/tests > copying tests/test_email_utils.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aiosmtplib/build/tests > copying tests/test_config.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aiosmtplib/build/tests > copying tests/test_main.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aiosmtplib/build/tests > copying tests/test_commands.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aiosmtplib/build/tests > copying tests/test_auth.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aiosmtplib/build/tests > copying tests/smtpd.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aiosmtplib/build/tests > copying tests/test_tls.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aiosmtplib/build/tests > copying tests/conftest.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aiosmtplib/build/tests > copying tests/test_sendmail.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aiosmtplib/build/tests > copying tests/test_timeouts.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aiosmtplib/build/tests > copying tests/test_errors.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aiosmtplib/build/tests > copying tests/test_sync.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aiosmtplib/build/tests > copying tests/test_protocol.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aiosmtplib/build/tests > copying aiosmtplib/py.typed -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aiosmtplib/build/aiosmtplib > copying docs/changelog.rst -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aiosmtplib/build/docs > copying docs/Makefile -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aiosmtplib/build/docs > copying docs/client.rst -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aiosmtplib/build/docs > copying docs/overview.rst -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aiosmtplib/build/docs > copying docs/reference.rst -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aiosmtplib/build/docs > copying docs/index.rst -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aiosmtplib/build/docs > copying docs/usage.rst -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aiosmtplib/build/docs > creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aiosmtplib/build/tests/certs > copying tests/certs/selfsigned.crt -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aiosmtplib/build/tests/certs > copying tests/certs/invalid.crt -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aiosmtplib/build/tests/certs > copying tests/certs/invalid.key -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aiosmtplib/build/tests/certs > copying tests/certs/selfsigned.key -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aiosmtplib/build/tests/certs > I: pybuild base:240: /usr/bin/python3 setup.py build > running build > running build_py > creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiosmtplib/build/aiosmtplib > copying aiosmtplib/__init__.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiosmtplib/build/aiosmtplib > copying aiosmtplib/status.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiosmtplib/build/aiosmtplib > copying aiosmtplib/response.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiosmtplib/build/aiosmtplib > copying aiosmtplib/__main__.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiosmtplib/build/aiosmtplib > copying aiosmtplib/errors.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiosmtplib/build/aiosmtplib > copying aiosmtplib/api.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiosmtplib/build/aiosmtplib > copying aiosmtplib/default.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiosmtplib/build/aiosmtplib > copying aiosmtplib/esmtp.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiosmtplib/build/aiosmtplib > copying aiosmtplib/auth.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiosmtplib/build/aiosmtplib > copying aiosmtplib/sync.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiosmtplib/build/aiosmtplib > copying aiosmtplib/smtp.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiosmtplib/build/aiosmtplib > copying aiosmtplib/compat.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiosmtplib/build/aiosmtplib > copying aiosmtplib/email.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiosmtplib/build/aiosmtplib > copying aiosmtplib/protocol.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiosmtplib/build/aiosmtplib > copying aiosmtplib/connection.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiosmtplib/build/aiosmtplib > creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiosmtplib/build/docs > copying docs/conf.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiosmtplib/build/docs > creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiosmtplib/build/tests > copying tests/__init__.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiosmtplib/build/tests > copying tests/test_asyncio.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiosmtplib/build/tests > copying tests/test_compat.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiosmtplib/build/tests > copying tests/test_connect.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiosmtplib/build/tests > copying tests/test_api.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiosmtplib/build/tests > copying tests/test_response.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiosmtplib/build/tests > copying tests/test_esmtp_utils.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiosmtplib/build/tests > copying tests/test_live.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiosmtplib/build/tests > copying tests/test_email_utils.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiosmtplib/build/tests > copying tests/test_config.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiosmtplib/build/tests > copying tests/test_main.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiosmtplib/build/tests > copying tests/test_commands.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiosmtplib/build/tests > copying tests/test_auth.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiosmtplib/build/tests > copying tests/smtpd.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiosmtplib/build/tests > copying tests/test_tls.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiosmtplib/build/tests > copying tests/conftest.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiosmtplib/build/tests > copying tests/test_sendmail.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiosmtplib/build/tests > copying tests/test_timeouts.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiosmtplib/build/tests > copying tests/test_errors.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiosmtplib/build/tests > copying tests/test_sync.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiosmtplib/build/tests > copying tests/test_protocol.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiosmtplib/build/tests > copying aiosmtplib/py.typed -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiosmtplib/build/aiosmtplib > copying docs/changelog.rst -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiosmtplib/build/docs > copying docs/Makefile -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiosmtplib/build/docs > copying docs/client.rst -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiosmtplib/build/docs > copying docs/overview.rst -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiosmtplib/build/docs > copying docs/reference.rst -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiosmtplib/build/docs > copying docs/index.rst -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiosmtplib/build/docs > copying docs/usage.rst -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiosmtplib/build/docs > creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiosmtplib/build/tests/certs > copying tests/certs/selfsigned.crt -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiosmtplib/build/tests/certs > copying tests/certs/invalid.crt -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiosmtplib/build/tests/certs > copying tests/certs/invalid.key -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiosmtplib/build/tests/certs > copying tests/certs/selfsigned.key -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiosmtplib/build/tests/certs > dh_auto_test -O--buildsystem=pybuild > pybuild --test --test-pytest -i python{version} -p "3.11 3.10" > I: pybuild base:240: cd > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aiosmtplib/build; python3.11 -m > pytest tests > ============================= test session starts > ============================== > platform linux -- Python 3.11.1, pytest-7.2.0, pluggy-1.0.0+repack > rootdir: /<<PKGBUILDDIR>> > plugins: hypothesis-6.60.0, asyncio-0.20.3 > asyncio: mode=Mode.STRICT > collected 333 items > > tests/test_api.py .......... [ > 3%] > tests/test_asyncio.py ........ [ > 5%] > tests/test_auth.py ....................... [ > 12%] > tests/test_commands.py ................................................. [ > 27%] > ........................................... [ > 39%] > tests/test_compat.py ... [ > 40%] > tests/test_config.py .......................... [ > 48%] > tests/test_connect.py .......................... [ > 56%] > tests/test_email_utils.py ................................... [ > 66%] > tests/test_errors.py ............... [ > 71%] > tests/test_esmtp_utils.py ..... [ > 72%] > tests/test_live.py ssss [ > 74%] > tests/test_main.py . [ > 74%] > tests/test_protocol.py ......... [ > 77%] > tests/test_response.py .. [ > 77%] > tests/test_sendmail.py .................................... [ > 88%] > tests/test_sync.py ......... [ > 91%] > tests/test_timeouts.py ..F...FF. [ > 93%] > tests/test_tls.py .................... > [100%] > > =================================== FAILURES > =================================== > ________________________ test_timeout_error_on_connect > _________________________ > > fut = <Task cancelled name='Task-1749' > coro=<BaseEventLoop.create_connection() done, defined at > /usr/lib/python3.11/asyncio/base_events.py:981>> > timeout = 0.0 > > async def wait_for(fut, timeout): > """Wait for the single Future or coroutine to complete, with timeout. > > Coroutine will be wrapped in Task. > > Returns result of the Future or coroutine. When a timeout occurs, > it cancels the task and raises TimeoutError. To avoid the task > cancellation, wrap it in shield(). > > If the wait is cancelled, the task is also cancelled. > > This function is a coroutine. > """ > loop = events.get_running_loop() > > if timeout is None: > return await fut > > if timeout <= 0: > fut = ensure_future(fut, loop=loop) > > if fut.done(): > return fut.result() > > await _cancel_and_wait(fut, loop=loop) > try: > > return fut.result() > > /usr/lib/python3.11/asyncio/tasks.py:452: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > self = <_UnixSelectorEventLoop running=False closed=False debug=False> > protocol_factory = <function > SMTPConnection._create_connection.<locals>.<lambda> at 0x7f311dc3a3e0> > host = 'localhost', port = 44981 > > > async def create_connection( > self, protocol_factory, host=None, port=None, > *, ssl=None, family=0, > proto=0, flags=0, sock=None, > local_addr=None, server_hostname=None, > ssl_handshake_timeout=None, > ssl_shutdown_timeout=None, > happy_eyeballs_delay=None, interleave=None): > E asyncio.exceptions.CancelledError > > /usr/lib/python3.11/asyncio/base_events.py:981: CancelledError > > The above exception was the direct cause of the following exception: > > self = <aiosmtplib.smtp.SMTP object at 0x7f311daf2290> > > async def _create_connection(self) -> SMTPResponse: > if self.loop is None: > raise RuntimeError("No event loop set") > > protocol = SMTPProtocol( > loop=self.loop, connection_lost_callback=self._connection_lost > ) > > tls_context = None # type: Optional[ssl.SSLContext] > ssl_handshake_timeout = None # type: Optional[float] > if self.use_tls: > tls_context = self._get_tls_context() > ssl_handshake_timeout = self.timeout > > if self.sock: > connect_coro = create_connection( > self.loop, > lambda: protocol, > sock=self.sock, > ssl=tls_context, > ssl_handshake_timeout=ssl_handshake_timeout, > ) > elif self.socket_path: > connect_coro = create_unix_connection( > self.loop, > lambda: protocol, > path=self.socket_path, > ssl=tls_context, > ssl_handshake_timeout=ssl_handshake_timeout, > ) > else: > connect_coro = create_connection( > self.loop, > lambda: protocol, > host=self.hostname, > port=self.port, > ssl=tls_context, > ssl_handshake_timeout=ssl_handshake_timeout, > ) > > try: > > transport, _ = await asyncio.wait_for(connect_coro, > > timeout=self.timeout) > > aiosmtplib/connection.py:366: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > fut = <Task cancelled name='Task-1749' > coro=<BaseEventLoop.create_connection() done, defined at > /usr/lib/python3.11/asyncio/base_events.py:981>> > timeout = 0.0 > > async def wait_for(fut, timeout): > """Wait for the single Future or coroutine to complete, with timeout. > > Coroutine will be wrapped in Task. > > Returns result of the Future or coroutine. When a timeout occurs, > it cancels the task and raises TimeoutError. To avoid the task > cancellation, wrap it in shield(). > > If the wait is cancelled, the task is also cancelled. > > This function is a coroutine. > """ > loop = events.get_running_loop() > > if timeout is None: > return await fut > > if timeout <= 0: > fut = ensure_future(fut, loop=loop) > > if fut.done(): > return fut.result() > > await _cancel_and_wait(fut, loop=loop) > try: > return fut.result() > except exceptions.CancelledError as exc: > > raise exceptions.TimeoutError() from exc > E TimeoutError > > /usr/lib/python3.11/asyncio/tasks.py:454: TimeoutError > > The above exception was the direct cause of the following exception: > > smtp_client = <aiosmtplib.smtp.SMTP object at 0x7f311daf2290> > smtpd_server = <Server sockets=(<asyncio.TransportSocket fd=20, family=2, > type=1, proto=6, laddr=('127.0.0.1', 44981)>,)> > smtpd_class = <class 'tests.smtpd.TestSMTPD'> > delayed_ok_response_handler = <function > delayed_ok_response_handler.<locals>.delayed_ok_response at 0x7f311dabcb80> > monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f311daf2190> > > async def test_timeout_error_on_connect( > smtp_client, smtpd_server, smtpd_class, delayed_ok_response_handler, > monkeypatch > ): > monkeypatch.setattr(smtpd_class, "_handle_client", > delayed_ok_response_handler) > > with pytest.raises(SMTPTimeoutError): > > await smtp_client.connect(timeout=0.0) > > tests/test_timeouts.py:70: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > aiosmtplib/connection.py:314: in connect > raise exc > aiosmtplib/connection.py:311: in connect > response = await self._create_connection() > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > self = <aiosmtplib.smtp.SMTP object at 0x7f311daf2290> > > async def _create_connection(self) -> SMTPResponse: > if self.loop is None: > raise RuntimeError("No event loop set") > > protocol = SMTPProtocol( > loop=self.loop, connection_lost_callback=self._connection_lost > ) > > tls_context = None # type: Optional[ssl.SSLContext] > ssl_handshake_timeout = None # type: Optional[float] > if self.use_tls: > tls_context = self._get_tls_context() > ssl_handshake_timeout = self.timeout > > if self.sock: > connect_coro = create_connection( > self.loop, > lambda: protocol, > sock=self.sock, > ssl=tls_context, > ssl_handshake_timeout=ssl_handshake_timeout, > ) > elif self.socket_path: > connect_coro = create_unix_connection( > self.loop, > lambda: protocol, > path=self.socket_path, > ssl=tls_context, > ssl_handshake_timeout=ssl_handshake_timeout, > ) > else: > connect_coro = create_connection( > self.loop, > lambda: protocol, > host=self.hostname, > port=self.port, > ssl=tls_context, > ssl_handshake_timeout=ssl_handshake_timeout, > ) > > try: > transport, _ = await asyncio.wait_for(connect_coro, > timeout=self.timeout) > except OSError as exc: > > raise SMTPConnectError( > "Error connecting to {host} on port {port}: {err}".format( > host=self.hostname, port=self.port, err=exc > ) > ) from exc > E aiosmtplib.errors.SMTPConnectError: Error connecting to localhost > on port 44981: > > aiosmtplib/connection.py:368: SMTPConnectError > __________________________ test_connect_timeout_error > __________________________ > > fut = <Task cancelled name='Task-1777' > coro=<BaseEventLoop.create_connection() done, defined at > /usr/lib/python3.11/asyncio/base_events.py:981>> > timeout = 0.0 > > async def wait_for(fut, timeout): > """Wait for the single Future or coroutine to complete, with timeout. > > Coroutine will be wrapped in Task. > > Returns result of the Future or coroutine. When a timeout occurs, > it cancels the task and raises TimeoutError. To avoid the task > cancellation, wrap it in shield(). > > If the wait is cancelled, the task is also cancelled. > > This function is a coroutine. > """ > loop = events.get_running_loop() > > if timeout is None: > return await fut > > if timeout <= 0: > fut = ensure_future(fut, loop=loop) > > if fut.done(): > return fut.result() > > await _cancel_and_wait(fut, loop=loop) > try: > > return fut.result() > > /usr/lib/python3.11/asyncio/tasks.py:452: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > self = <_UnixSelectorEventLoop running=False closed=False debug=False> > protocol_factory = <function > SMTPConnection._create_connection.<locals>.<lambda> at 0x7f311e2487c0> > host = 'localhost', port = 55073 > > > async def create_connection( > self, protocol_factory, host=None, port=None, > *, ssl=None, family=0, > proto=0, flags=0, sock=None, > local_addr=None, server_hostname=None, > ssl_handshake_timeout=None, > ssl_shutdown_timeout=None, > happy_eyeballs_delay=None, interleave=None): > E asyncio.exceptions.CancelledError > > /usr/lib/python3.11/asyncio/base_events.py:981: CancelledError > > The above exception was the direct cause of the following exception: > > self = <aiosmtplib.smtp.SMTP object at 0x7f311de91710> > > async def _create_connection(self) -> SMTPResponse: > if self.loop is None: > raise RuntimeError("No event loop set") > > protocol = SMTPProtocol( > loop=self.loop, connection_lost_callback=self._connection_lost > ) > > tls_context = None # type: Optional[ssl.SSLContext] > ssl_handshake_timeout = None # type: Optional[float] > if self.use_tls: > tls_context = self._get_tls_context() > ssl_handshake_timeout = self.timeout > > if self.sock: > connect_coro = create_connection( > self.loop, > lambda: protocol, > sock=self.sock, > ssl=tls_context, > ssl_handshake_timeout=ssl_handshake_timeout, > ) > elif self.socket_path: > connect_coro = create_unix_connection( > self.loop, > lambda: protocol, > path=self.socket_path, > ssl=tls_context, > ssl_handshake_timeout=ssl_handshake_timeout, > ) > else: > connect_coro = create_connection( > self.loop, > lambda: protocol, > host=self.hostname, > port=self.port, > ssl=tls_context, > ssl_handshake_timeout=ssl_handshake_timeout, > ) > > try: > > transport, _ = await asyncio.wait_for(connect_coro, > > timeout=self.timeout) > > aiosmtplib/connection.py:366: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > fut = <Task cancelled name='Task-1777' > coro=<BaseEventLoop.create_connection() done, defined at > /usr/lib/python3.11/asyncio/base_events.py:981>> > timeout = 0.0 > > async def wait_for(fut, timeout): > """Wait for the single Future or coroutine to complete, with timeout. > > Coroutine will be wrapped in Task. > > Returns result of the Future or coroutine. When a timeout occurs, > it cancels the task and raises TimeoutError. To avoid the task > cancellation, wrap it in shield(). > > If the wait is cancelled, the task is also cancelled. > > This function is a coroutine. > """ > loop = events.get_running_loop() > > if timeout is None: > return await fut > > if timeout <= 0: > fut = ensure_future(fut, loop=loop) > > if fut.done(): > return fut.result() > > await _cancel_and_wait(fut, loop=loop) > try: > return fut.result() > except exceptions.CancelledError as exc: > > raise exceptions.TimeoutError() from exc > E TimeoutError > > /usr/lib/python3.11/asyncio/tasks.py:454: TimeoutError > > The above exception was the direct cause of the following exception: > > hostname = 'localhost', unused_tcp_port = 55073 > > async def test_connect_timeout_error(hostname, unused_tcp_port): > client = SMTP(hostname=hostname, port=unused_tcp_port, timeout=0.0) > > with pytest.raises(SMTPConnectTimeoutError) as exc: > > await client.connect() > > tests/test_timeouts.py:119: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > aiosmtplib/connection.py:314: in connect > raise exc > aiosmtplib/connection.py:311: in connect > response = await self._create_connection() > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > self = <aiosmtplib.smtp.SMTP object at 0x7f311de91710> > > async def _create_connection(self) -> SMTPResponse: > if self.loop is None: > raise RuntimeError("No event loop set") > > protocol = SMTPProtocol( > loop=self.loop, connection_lost_callback=self._connection_lost > ) > > tls_context = None # type: Optional[ssl.SSLContext] > ssl_handshake_timeout = None # type: Optional[float] > if self.use_tls: > tls_context = self._get_tls_context() > ssl_handshake_timeout = self.timeout > > if self.sock: > connect_coro = create_connection( > self.loop, > lambda: protocol, > sock=self.sock, > ssl=tls_context, > ssl_handshake_timeout=ssl_handshake_timeout, > ) > elif self.socket_path: > connect_coro = create_unix_connection( > self.loop, > lambda: protocol, > path=self.socket_path, > ssl=tls_context, > ssl_handshake_timeout=ssl_handshake_timeout, > ) > else: > connect_coro = create_connection( > self.loop, > lambda: protocol, > host=self.hostname, > port=self.port, > ssl=tls_context, > ssl_handshake_timeout=ssl_handshake_timeout, > ) > > try: > transport, _ = await asyncio.wait_for(connect_coro, > timeout=self.timeout) > except OSError as exc: > > raise SMTPConnectError( > "Error connecting to {host} on port {port}: {err}".format( > host=self.hostname, port=self.port, err=exc > ) > ) from exc > E aiosmtplib.errors.SMTPConnectError: Error connecting to localhost > on port 55073: > > aiosmtplib/connection.py:368: SMTPConnectError > _____________ test_server_disconnected_error_after_connect_timeout > _____________ > > fut = <Task cancelled name='Task-1780' > coro=<BaseEventLoop.create_connection() done, defined at > /usr/lib/python3.11/asyncio/base_events.py:981>> > timeout = 0.0 > > async def wait_for(fut, timeout): > """Wait for the single Future or coroutine to complete, with timeout. > > Coroutine will be wrapped in Task. > > Returns result of the Future or coroutine. When a timeout occurs, > it cancels the task and raises TimeoutError. To avoid the task > cancellation, wrap it in shield(). > > If the wait is cancelled, the task is also cancelled. > > This function is a coroutine. > """ > loop = events.get_running_loop() > > if timeout is None: > return await fut > > if timeout <= 0: > fut = ensure_future(fut, loop=loop) > > if fut.done(): > return fut.result() > > await _cancel_and_wait(fut, loop=loop) > try: > > return fut.result() > > /usr/lib/python3.11/asyncio/tasks.py:452: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > self = <_UnixSelectorEventLoop running=False closed=False debug=False> > protocol_factory = <function > SMTPConnection._create_connection.<locals>.<lambda> at 0x7f311e3ab420> > host = 'localhost', port = 41133 > > > async def create_connection( > self, protocol_factory, host=None, port=None, > *, ssl=None, family=0, > proto=0, flags=0, sock=None, > local_addr=None, server_hostname=None, > ssl_handshake_timeout=None, > ssl_shutdown_timeout=None, > happy_eyeballs_delay=None, interleave=None): > E asyncio.exceptions.CancelledError > > /usr/lib/python3.11/asyncio/base_events.py:981: CancelledError > > The above exception was the direct cause of the following exception: > > self = <aiosmtplib.smtp.SMTP object at 0x7f311e08e610> > > async def _create_connection(self) -> SMTPResponse: > if self.loop is None: > raise RuntimeError("No event loop set") > > protocol = SMTPProtocol( > loop=self.loop, connection_lost_callback=self._connection_lost > ) > > tls_context = None # type: Optional[ssl.SSLContext] > ssl_handshake_timeout = None # type: Optional[float] > if self.use_tls: > tls_context = self._get_tls_context() > ssl_handshake_timeout = self.timeout > > if self.sock: > connect_coro = create_connection( > self.loop, > lambda: protocol, > sock=self.sock, > ssl=tls_context, > ssl_handshake_timeout=ssl_handshake_timeout, > ) > elif self.socket_path: > connect_coro = create_unix_connection( > self.loop, > lambda: protocol, > path=self.socket_path, > ssl=tls_context, > ssl_handshake_timeout=ssl_handshake_timeout, > ) > else: > connect_coro = create_connection( > self.loop, > lambda: protocol, > host=self.hostname, > port=self.port, > ssl=tls_context, > ssl_handshake_timeout=ssl_handshake_timeout, > ) > > try: > > transport, _ = await asyncio.wait_for(connect_coro, > > timeout=self.timeout) > > aiosmtplib/connection.py:366: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > fut = <Task cancelled name='Task-1780' > coro=<BaseEventLoop.create_connection() done, defined at > /usr/lib/python3.11/asyncio/base_events.py:981>> > timeout = 0.0 > > async def wait_for(fut, timeout): > """Wait for the single Future or coroutine to complete, with timeout. > > Coroutine will be wrapped in Task. > > Returns result of the Future or coroutine. When a timeout occurs, > it cancels the task and raises TimeoutError. To avoid the task > cancellation, wrap it in shield(). > > If the wait is cancelled, the task is also cancelled. > > This function is a coroutine. > """ > loop = events.get_running_loop() > > if timeout is None: > return await fut > > if timeout <= 0: > fut = ensure_future(fut, loop=loop) > > if fut.done(): > return fut.result() > > await _cancel_and_wait(fut, loop=loop) > try: > return fut.result() > except exceptions.CancelledError as exc: > > raise exceptions.TimeoutError() from exc > E TimeoutError > > /usr/lib/python3.11/asyncio/tasks.py:454: TimeoutError > > The above exception was the direct cause of the following exception: > > hostname = 'localhost', unused_tcp_port = 41133 > sender_str = 'sen...@example.com', recipient_str = 'recipi...@example.com' > message_str = 'Content-Type: multipart/mixed; > boundary="===============6842273139637972052=="\nMIME-Version: 1.0\nTo: > recipient@exam...-ascii"\nMIME-Version: 1.0\nContent-Transfer-Encoding: > 7bit\n\nHello World\n--===============6842273139637972052==--\n' > > async def test_server_disconnected_error_after_connect_timeout( > hostname, unused_tcp_port, sender_str, recipient_str, message_str > ): > client = SMTP(hostname=hostname, port=unused_tcp_port) > > with pytest.raises(SMTPConnectTimeoutError): > > await client.connect(timeout=0.0) > > tests/test_timeouts.py:133: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > aiosmtplib/connection.py:314: in connect > raise exc > aiosmtplib/connection.py:311: in connect > response = await self._create_connection() > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > self = <aiosmtplib.smtp.SMTP object at 0x7f311e08e610> > > async def _create_connection(self) -> SMTPResponse: > if self.loop is None: > raise RuntimeError("No event loop set") > > protocol = SMTPProtocol( > loop=self.loop, connection_lost_callback=self._connection_lost > ) > > tls_context = None # type: Optional[ssl.SSLContext] > ssl_handshake_timeout = None # type: Optional[float] > if self.use_tls: > tls_context = self._get_tls_context() > ssl_handshake_timeout = self.timeout > > if self.sock: > connect_coro = create_connection( > self.loop, > lambda: protocol, > sock=self.sock, > ssl=tls_context, > ssl_handshake_timeout=ssl_handshake_timeout, > ) > elif self.socket_path: > connect_coro = create_unix_connection( > self.loop, > lambda: protocol, > path=self.socket_path, > ssl=tls_context, > ssl_handshake_timeout=ssl_handshake_timeout, > ) > else: > connect_coro = create_connection( > self.loop, > lambda: protocol, > host=self.hostname, > port=self.port, > ssl=tls_context, > ssl_handshake_timeout=ssl_handshake_timeout, > ) > > try: > transport, _ = await asyncio.wait_for(connect_coro, > timeout=self.timeout) > except OSError as exc: > > raise SMTPConnectError( > "Error connecting to {host} on port {port}: {err}".format( > host=self.hostname, port=self.port, err=exc > ) > ) from exc > E aiosmtplib.errors.SMTPConnectError: Error connecting to localhost > on port 41133: > > aiosmtplib/connection.py:368: SMTPConnectError > =============================== warnings summary > =============================== > .pybuild/cpython3_3.11_aiosmtplib/build/tests/test_api.py::test_send[mime_multipart] > > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aiosmtplib/build/tests/conftest.py:81: > DeprecationWarning: There is no current event loop > old_loop = event_loop_policy.get_event_loop() > > .pybuild/cpython3_3.11_aiosmtplib/build/tests/test_api.py: 8 warnings > .pybuild/cpython3_3.11_aiosmtplib/build/tests/test_asyncio.py: 16 warnings > .pybuild/cpython3_3.11_aiosmtplib/build/tests/test_auth.py: 1 warning > .pybuild/cpython3_3.11_aiosmtplib/build/tests/test_commands.py: 92 warnings > .pybuild/cpython3_3.11_aiosmtplib/build/tests/test_config.py: 11 warnings > .pybuild/cpython3_3.11_aiosmtplib/build/tests/test_connect.py: 25 warnings > .pybuild/cpython3_3.11_aiosmtplib/build/tests/test_main.py: 1 warning > .pybuild/cpython3_3.11_aiosmtplib/build/tests/test_sendmail.py: 36 warnings > .pybuild/cpython3_3.11_aiosmtplib/build/tests/test_sync.py: 6 warnings > .pybuild/cpython3_3.11_aiosmtplib/build/tests/test_timeouts.py: 4 warnings > .pybuild/cpython3_3.11_aiosmtplib/build/tests/test_tls.py: 20 warnings > /usr/lib/python3/dist-packages/aiosmtpd/smtp.py:414: DeprecationWarning: > Use the 5-argument handle_EHLO() hook instead of the 4-argument handle_EHLO() > hook; support for the 4-argument handle_EHLO() hook will be removed in > version 2.0 > warn("Use the 5-argument handle_EHLO() hook instead of " > > .pybuild/cpython3_3.11_aiosmtplib/build/tests/test_sync.py::test_send_message_sync[mime_multipart] > /usr/lib/python3.11/asyncio/base_events.py:436: RuntimeWarning: coroutine > 'BaseEventLoop.shutdown_asyncgens' was never awaited > task = tasks.Task(coro, loop=self, name=name, context=context) > Enable tracemalloc to get traceback where the object was allocated. > See > https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings > for more info. > > .pybuild/cpython3_3.11_aiosmtplib/build/tests/test_timeouts.py::test_command_timeout_error > /usr/lib/python3/dist-packages/_pytest/fixtures.py:1661: RuntimeWarning: > coroutine 'BaseEventLoop.shutdown_asyncgens' was never awaited > fixturedefs = self._arg2fixturedefs[argname] > Enable tracemalloc to get traceback where the object was allocated. > See > https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings > for more info. > > -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html > =========================== short test summary info > ============================ > FAILED tests/test_timeouts.py::test_timeout_error_on_connect - > aiosmtplib.err... > FAILED tests/test_timeouts.py::test_connect_timeout_error - > aiosmtplib.errors... > FAILED > tests/test_timeouts.py::test_server_disconnected_error_after_connect_timeout > ============ 3 failed, 326 passed, 4 skipped, 223 warnings in 6.16s > ============ > E: pybuild pybuild:386: test: plugin distutils failed with: exit code=1: cd > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aiosmtplib/build; python3.11 -m > pytest tests > I: pybuild base:240: cd > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiosmtplib/build; python3.10 -m > pytest tests > ============================= test session starts > ============================== > platform linux -- Python 3.10.9, pytest-7.2.0, pluggy-1.0.0+repack > rootdir: /<<PKGBUILDDIR>> > plugins: hypothesis-6.60.0, asyncio-0.20.3 > asyncio: mode=strict > collected 333 items > > tests/test_api.py .......... [ > 3%] > tests/test_asyncio.py ........ [ > 5%] > tests/test_auth.py ....................... [ > 12%] > tests/test_commands.py ................................................. [ > 27%] > ........................................... [ > 39%] > tests/test_compat.py ... [ > 40%] > tests/test_config.py .......................... [ > 48%] > tests/test_connect.py .......................... [ > 56%] > tests/test_email_utils.py ................................... [ > 66%] > tests/test_errors.py ............... [ > 71%] > tests/test_esmtp_utils.py ..... [ > 72%] > tests/test_live.py ssss [ > 74%] > tests/test_main.py . [ > 74%] > tests/test_protocol.py ......... [ > 77%] > tests/test_response.py .. [ > 77%] > tests/test_sendmail.py .................................... [ > 88%] > tests/test_sync.py ......... [ > 91%] > tests/test_timeouts.py ......... [ > 93%] > tests/test_tls.py .................... > [100%] > > =============================== warnings summary > =============================== > .pybuild/cpython3_3.10_aiosmtplib/build/tests/test_api.py::test_send[mime_multipart] > > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiosmtplib/build/tests/conftest.py:81: > DeprecationWarning: There is no current event loop > old_loop = event_loop_policy.get_event_loop() > > .pybuild/cpython3_3.10_aiosmtplib/build/tests/test_api.py: 8 warnings > .pybuild/cpython3_3.10_aiosmtplib/build/tests/test_asyncio.py: 16 warnings > .pybuild/cpython3_3.10_aiosmtplib/build/tests/test_auth.py: 1 warning > .pybuild/cpython3_3.10_aiosmtplib/build/tests/test_commands.py: 92 warnings > .pybuild/cpython3_3.10_aiosmtplib/build/tests/test_config.py: 11 warnings > .pybuild/cpython3_3.10_aiosmtplib/build/tests/test_connect.py: 25 warnings > .pybuild/cpython3_3.10_aiosmtplib/build/tests/test_main.py: 1 warning > .pybuild/cpython3_3.10_aiosmtplib/build/tests/test_sendmail.py: 36 warnings > .pybuild/cpython3_3.10_aiosmtplib/build/tests/test_sync.py: 6 warnings > .pybuild/cpython3_3.10_aiosmtplib/build/tests/test_timeouts.py: 4 warnings > .pybuild/cpython3_3.10_aiosmtplib/build/tests/test_tls.py: 20 warnings > /usr/lib/python3/dist-packages/aiosmtpd/smtp.py:414: DeprecationWarning: > Use the 5-argument handle_EHLO() hook instead of the 4-argument handle_EHLO() > hook; support for the 4-argument handle_EHLO() hook will be removed in > version 2.0 > warn("Use the 5-argument handle_EHLO() hook instead of " > > .pybuild/cpython3_3.10_aiosmtplib/build/tests/test_sync.py::test_sendmail_sync_when_connected > /usr/lib/python3.10/email/_header_value_parser.py:134: RuntimeWarning: > coroutine 'BaseEventLoop.shutdown_asyncgens' was never awaited > return ''.join(x.value for x in self if x.value) > Enable tracemalloc to get traceback where the object was allocated. > See > https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings > for more info. > > .pybuild/cpython3_3.10_aiosmtplib/build/tests/test_sync.py::test_send_message_sync_when_connected[mime_multipart] > /usr/lib/python3.10/email/header.py:505: RuntimeWarning: coroutine > 'BaseEventLoop.shutdown_asyncgens' was never awaited > for fws, part in zip(*[iter(parts)]*2): > Enable tracemalloc to get traceback where the object was allocated. > See > https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings > for more info. > > .pybuild/cpython3_3.10_aiosmtplib/build/tests/test_timeouts.py::test_command_timeout_error > /usr/lib/python3.10/concurrent/futures/thread.py:194: RuntimeWarning: > coroutine 'BaseEventLoop.shutdown_asyncgens' was never awaited > t = threading.Thread(name=thread_name, target=_worker, > Enable tracemalloc to get traceback where the object was allocated. > See > https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings > for more info. > > -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html > ================= 329 passed, 4 skipped, 224 warnings in 7.78s > ================= > sys:1: RuntimeWarning: coroutine 'BaseEventLoop.shutdown_asyncgens' was never > awaited > RuntimeWarning: Enable tracemalloc to get the object allocation traceback > rm -fr -- /tmp/dh-xdg-rundir-vpZCPABl > dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.11 > 3.10" returned exit code 13 The full build log is available from: http://qa-logs.debian.net/2022/12/20/aiosmtplib_1.1.6-2_unstable.log All bugs filed during this archive rebuild are listed at: https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=ftbfs-20221220;users=lu...@debian.org or: https://udd.debian.org/bugs/?release=na&merged=ign&fnewerval=7&flastmodval=7&fusertag=only&fusertagtag=ftbfs-20221220&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.