Your message dated Tue, 07 Jan 2025 21:20:34 +0000
with message-id <e1tvh06-004mqk...@fasolo.debian.org>
and subject line Bug#1082392: fixed in python-ttn-client 1.2.1-3
has caused the Debian Bug report #1082392,
regarding python-ttn-client: FTBFS (requires Internet access)
to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact ow...@bugs.debian.org
immediately.)
--
1082392: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1082392
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Source: python-ttn-client
Version: 1.2.1-2
Severity: serious
Tags: ftbfs
Justification: FTBFS
Dear maintainer,
During a test rebuild, python-ttn-client failed to rebuild.
It appears to require Internet access to run the tests, which is against
Debian policy.
https://www.debian.org/doc/debian-policy/ch-source.html#main-building-script-debian-rules
-------------------------------------------------------------------------------
[...]
* Building wheel...
Successfully built ttn_client-1.2.1-py3-none-any.whl
I: pybuild plugin_pyproject:144: Unpacking wheel built for python3.12 with
"installer" module
dh_auto_test -O--buildsystem=pybuild
I: pybuild base:311: cd
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_ttn-client/build; python3.12 -m pytest
--no-cov
============================= test session starts ==============================
platform linux -- Python 3.12.6, pytest-8.3.3, pluggy-1.5.0
rootdir: /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_ttn-client/build
configfile: pyproject.toml
plugins: typeguard-4.3.0, timeout-2.3.1, asyncio-0.20.3, cov-5.0.0
asyncio: mode=Mode.STRICT
collected 12 items
tests/parsers/test_default.py .... [ 33%]
tests/parsers/test_sensecap.py .... [ 66%]
tests/test_client.py .F.. [100%]
=================================== FAILURES ===================================
__________________________ test_connection_auth_error __________________________
self = <aiohttp.connector.TCPConnector object at 0xffffaf46c680>
req = <aiohttp.client_reqrep.ClientRequest object at 0xffffb0f69760>
traces = []
timeout = ClientTimeout(total=600, connect=None, sock_read=None,
sock_connect=None, ceil_threshold=5)
async def _create_direct_connection(
self,
req: ClientRequest,
traces: List["Trace"],
timeout: "ClientTimeout",
*,
client_error: Type[Exception] = ClientConnectorError,
) -> Tuple[asyncio.Transport, ResponseHandler]:
sslcontext = await self._get_ssl_context(req)
fingerprint = self._get_fingerprint(req)
host = req.url.raw_host
assert host is not None
# Replace multiple trailing dots with a single one.
# A trailing dot is only present for fully-qualified domain names.
# See https://github.com/aio-libs/aiohttp/pull/7364.
if host.endswith(".."):
host = host.rstrip(".") + "."
port = req.port
assert port is not None
try:
# Cancelling this lookup should not cancel the underlying lookup
# or else the cancel event will get broadcast to all the waiters
# across all connections.
> hosts = await self._resolve_host(host, port, traces=traces)
/usr/lib/python3/dist-packages/aiohttp/connector.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3/dist-packages/aiohttp/connector.py:911: in _resolve_host
return await asyncio.shield(resolved_host_task)
/usr/lib/python3/dist-packages/aiohttp/connector.py:948: in
_resolve_host_with_throttle
addrs = await self._resolver.resolve(host, port, family=self._family)
/usr/lib/python3/dist-packages/aiohttp/resolver.py:37: in resolve
infos = await self._loop.getaddrinfo(
/usr/lib/python3.12/asyncio/base_events.py:901: in getaddrinfo
return await self.run_in_executor(
/usr/lib/python3.12/concurrent/futures/thread.py:58: in run
result = self.fn(*self.args, **self.kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
host = 'eu1.cloud.thethings.network', port = 443
family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>
proto = 0, flags = <AddressInfo.AI_ADDRCONFIG: 32>
def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.
Translate the host/port argument into a sequence of 5-tuples that
contain
all the necessary arguments for creating a socket connected to that
service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port
number or
None. By passing None as the value of host and port, you can pass NULL
to
the underlying C API.
The family, type and proto arguments can be optionally specified in
order to
narrow the list of addresses returned. Passing zero as a value for each
of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric
family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno -3] Temporary failure in name resolution
/usr/lib/python3.12/socket.py:976: gaierror
The above exception was the direct cause of the following exception:
dummy_client = <ttn_client.client.TTNClient object at 0xffffafb384d0>
@pytest.mark.asyncio
async def test_connection_auth_error(dummy_client):
"""Test that dummy credentials fail."""
with pytest.raises(ttn_client.TTNAuthError):
> await dummy_client.fetch_data()
tests/test_client.py:28:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
ttn_client/client.py:57: in fetch_data
return await
self.__storage_api_call(f"?last={fetch_last}&order=received_at")
ttn_client/client.py:71: in __storage_api_call
session.get(
/usr/lib/python3/dist-packages/aiohttp/client.py:1353: in __aenter__
self._resp = await self._coro
/usr/lib/python3/dist-packages/aiohttp/client.py:657: in _request
conn = await self._connector.connect(
/usr/lib/python3/dist-packages/aiohttp/connector.py:564: in connect
proto = await self._create_connection(req, traces, timeout)
/usr/lib/python3/dist-packages/aiohttp/connector.py:975: in _create_connection
_, proto = await self._create_direct_connection(req, traces, timeout)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <aiohttp.connector.TCPConnector object at 0xffffaf46c680>
req = <aiohttp.client_reqrep.ClientRequest object at 0xffffb0f69760>
traces = []
timeout = ClientTimeout(total=600, connect=None, sock_read=None,
sock_connect=None, ceil_threshold=5)
async def _create_direct_connection(
self,
req: ClientRequest,
traces: List["Trace"],
timeout: "ClientTimeout",
*,
client_error: Type[Exception] = ClientConnectorError,
) -> Tuple[asyncio.Transport, ResponseHandler]:
sslcontext = await self._get_ssl_context(req)
fingerprint = self._get_fingerprint(req)
host = req.url.raw_host
assert host is not None
# Replace multiple trailing dots with a single one.
# A trailing dot is only present for fully-qualified domain names.
# See https://github.com/aio-libs/aiohttp/pull/7364.
if host.endswith(".."):
host = host.rstrip(".") + "."
port = req.port
assert port is not None
try:
# Cancelling this lookup should not cancel the underlying lookup
# or else the cancel event will get broadcast to all the waiters
# across all connections.
hosts = await self._resolve_host(host, port, traces=traces)
except OSError as exc:
if exc.errno is None and isinstance(exc, asyncio.TimeoutError):
raise
# in case of proxy it is not ClientProxyConnectionError
# it is problem of resolving proxy ip itself
> raise ClientConnectorError(req.connection_key, exc) from exc
E aiohttp.client_exceptions.ClientConnectorError: Cannot connect to
host eu1.cloud.thethings.network:443 ssl:default [Temporary failure in name
resolution]
/usr/lib/python3/dist-packages/aiohttp/connector.py:1307: ClientConnectorError
=============================== warnings summary ===============================
../../../../../../usr/lib/python3/dist-packages/_pytest/config/__init__.py:831
/usr/lib/python3/dist-packages/_pytest/config/__init__.py:831:
PytestAssertRewriteWarning: Module already imported so cannot be rewritten:
pytest_asyncio
self.import_plugin(import_spec)
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
FAILED tests/test_client.py::test_connection_auth_error - aiohttp.client_exce...
=================== 1 failed, 11 passed, 1 warning in 0.28s ====================
E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_ttn-client/build; python3.12 -m pytest
--no-cov
dh_auto_test: error: pybuild --test -i python{version} -p 3.12 returned exit
code 13
make: *** [debian/rules:8: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
--------------------------------------------------------------------------------
Build finished at 2024-09-19T23:28:16Z
-------------------------------------------------------------------------------
The above is just how the build ends and not necessarily the most relevant part.
If required, the full build log is available here (for the next 30 days):
https://debusine.debian.net/artifact/800624/
About the archive rebuild: The build was made on debusine.debian.net,
on arm64 using sbuild.
You can find the build task here:
https://debusine.debian.net/work-request/39202/
If this is really a bug in one of the build-depends, please use
reassign and affects, so that this is still visible in the BTS web
page for this package.
Thanks,
Stefano
--- End Message ---
--- Begin Message ---
Source: python-ttn-client
Source-Version: 1.2.1-3
Done: Edward Betts <edw...@4angle.com>
We believe that the bug you reported is fixed in the latest version of
python-ttn-client, which is due to be installed in the Debian FTP archive.
A summary of the changes between this version and the previous one is
attached.
Thank you for reporting the bug, which will now be closed. If you
have further comments please address them to 1082...@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.
Debian distribution maintenance software
pp.
Edward Betts <edw...@4angle.com> (supplier of updated python-ttn-client package)
(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmas...@ftp-master.debian.org)
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
Format: 1.8
Date: Tue, 07 Jan 2025 20:11:06 +0000
Source: python-ttn-client
Architecture: source
Version: 1.2.1-3
Distribution: unstable
Urgency: medium
Maintainer: Home Assistant Team <team+homeassist...@tracker.debian.org>
Changed-By: Edward Betts <edw...@4angle.com>
Closes: 1082392
Changes:
python-ttn-client (1.2.1-3) unstable; urgency=medium
.
* Skip tests that accesses the network. (Closes: #1082392)
* Update copyright year.
* Simplify debian/watch.
* Simplify debian/rules.
Checksums-Sha1:
83beb4562ed05cc3e1fa55b31f0fa7ee6b536bce 2452 python-ttn-client_1.2.1-3.dsc
67281f84ff31130379d888bc1466f962cf36b6c3 2564
python-ttn-client_1.2.1-3.debian.tar.xz
32b8558bfec4882880fa7c1af8499f0606e4a1f7 8887
python-ttn-client_1.2.1-3_source.buildinfo
Checksums-Sha256:
b01b5423af88b86923101210a21605964281d9f5fef7d584b387e347f0145908 2452
python-ttn-client_1.2.1-3.dsc
67d7d6e29dfe051531469ae74f6789c8e18f23bcb7743fe57f690443d0d0be48 2564
python-ttn-client_1.2.1-3.debian.tar.xz
1426f2ff786f71d6174c33516c5681408ff2ccc31d0452e432da8a140dd7ec95 8887
python-ttn-client_1.2.1-3_source.buildinfo
Files:
e8be1d0871a0950b2854f4ce59223adc 2452 python optional
python-ttn-client_1.2.1-3.dsc
b98ff7410550dda1e9800d0a5a49b580 2564 python optional
python-ttn-client_1.2.1-3.debian.tar.xz
e173228c362be8796f142c74ca1b6daa 8887 python optional
python-ttn-client_1.2.1-3_source.buildinfo
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCgAdFiEE+4rPp4xyYInDitAmlgWhCYxjuSoFAmd9i04ACgkQlgWhCYxj
uSrGuRAAqIZyghDOojhmuOkrzfmBm7xBFzHSxvA46gUHAnWoh/GVkbYH73s1qK0d
q5H6w8xqhjZEfJ8/Ymn3jxtufHkcyLFPzG/fwy4nmjMklxi5BLM1p7xtlc8zF2vd
+xFvDQSZacmdxF7FZysQw5Xd8vmkZhmJWQi/8SaSsKYKhPO0Qqw09fHJTS/OZiYJ
+XHBqf79CZ9huKO28z7FyLMUurx1K44KiFZYYUjP3MYp0RfO3H4yaIcD6PNalnQj
M+3X9CDZXRTKLxIMoFnoy//1upQbZg1rC0u3bliPB0AEI2m/xvMjNqzAqe3KEgI3
iivBJeykc7vd7KuqIsWMCEGE1kJotSzIrX9YAxuaZaKcNcba89JDgEYzdloapmPg
M2PgXc/9WBXN5m3lG1M5KbjZezcNAeRDGOyUO4dq+Zqpz+oxzNbA3dgoTi9LE+FV
m5GN9Nd9f6fHUIDd2ygOVQrRusDzmmwWrHq9WjwWcKwd5Ot4SVi4QnwpqKvpzcjt
XsCuty9//QKkrGJjZSgoxhBShJ6g65qQE300MMMErF/r1vjoDQRuhg9QLKPL8dsD
gXvoC00WOmTOQRdeNeM6xzrftydrSqiOKwvhDQ6WFtPvnUmASUszvo4WozvIii1R
RrpPo0lXkNLeCvuyqW0Ax92WjFFiB+70hrHjoNqrM8fBdfgJ4bk=
=08e2
-----END PGP SIGNATURE-----
pgpeM3j0vHtdt.pgp
Description: PGP signature
--- End Message ---