Your message dated Mon, 03 Mar 2025 02:57:36 +0000
with message-id <e1tovzs-00ciyg...@fasolo.debian.org>
and subject line Bug#1099273: fixed in python-keycloak 5.3.1+dfsg-1
has caused the Debian Bug report #1099273,
regarding python-keycloak: FTBFS: E TypeError: AsyncClient.__init__() got
an unexpected keyword argument 'proxies'
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.)
--
1099273: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1099273
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Package: src:python-keycloak
Version: 4.6.2+dfsg-1
Severity: serious
Tags: ftbfs trixie sid
Dear maintainer:
During a rebuild of all packages in unstable, your package failed to build:
--------------------------------------------------------------------------------
[...]
debian/rules clean
dh clean --buildsystem=pybuild
dh_auto_clean -O--buildsystem=pybuild
debian/rules execute_after_dh_auto_clean
make[1]: Entering directory '/<<PKGBUILDDIR>>'
sed -i -e "/^version =/c version = \"0.0.0\"" /<<PKGBUILDDIR>>/pyproject.toml
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
dh_autoreconf_clean -O--buildsystem=pybuild
dh_clean -O--buildsystem=pybuild
debian/rules binary
dh binary --buildsystem=pybuild
dh_update_autotools_config -O--buildsystem=pybuild
dh_autoreconf -O--buildsystem=pybuild
dh_auto_configure -O--buildsystem=pybuild
debian/rules execute_before_dh_auto_build
make[1]: Entering directory '/<<PKGBUILDDIR>>'
sed -i -e "/^version =/c version = \"4.6.2\"" /<<PKGBUILDDIR>>/pyproject.toml
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
dh_auto_build -O--buildsystem=pybuild
I: pybuild plugin_pyproject:129: Building wheel for python3.13 with "build"
module
I: pybuild base:311: python3.13 -m build --skip-dependency-check --no-isolation
--wheel --outdir /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_keycloak
* Building wheel...
Successfully built python_keycloak-4.6.2-py3-none-any.whl
I: pybuild plugin_pyproject:144: Unpacking wheel built for python3.13 with
"installer" module
debian/rules override_dh_auto_test
make[1]: Entering directory '/<<PKGBUILDDIR>>'
export KEYCLOAK_ADMIN=admin; export KEYCLOAK_ADMIN_PASSWORD=admin; export
KEYCLOAK_HOST=localhost; export KEYCLOAK_PORT=8080; dh_auto_test
I: pybuild base:311: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_keycloak/build;
python3.13 -m pytest --ignore=tests/test_keycloak_admin.py
--ignore=tests/test_keycloak_uma.py --ignore=tests/test_keycloak_openid.py
============================= test session starts ==============================
platform linux -- Python 3.13.2, pytest-8.3.4, pluggy-1.5.0
rootdir: /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_keycloak/build
configfile: pyproject.toml
plugins: cov-5.0.0, anyio-4.8.0, typeguard-4.4.2
collected 36 items
tests/test_authorization.py . [ 2%]
tests/test_connection.py FFF. [ 13%]
tests/test_exceptions.py . [ 16%]
tests/test_license.py . [ 19%]
tests/test_uma_permissions.py ............................ [ 97%]
tests/test_urls_patterns.py . [100%]
=================================== FAILURES ===================================
____________________________ test_connection_proxy _____________________________
def test_connection_proxy():
"""Test proxies of connection manager."""
> cm = ConnectionManager(
base_url="http://test.test", proxies={"http://test.test":
"http://localhost:8080"}
)
tests/test_connection.py:13:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <keycloak.connection.ConnectionManager object at 0x7fa58ec24440>
base_url = 'http://test.test', headers = {}, timeout = 60, verify = True
proxies = {'http://test.test': 'http://localhost:8080'}, cert = None
max_retries = 1
def __init__(
self, base_url, headers={}, timeout=60, verify=True, proxies=None,
cert=None, max_retries=1
):
"""Init method.
:param base_url: The server URL.
:type base_url: str
:param headers: The header parameters of the requests to the server.
:type headers: dict
:param timeout: Timeout to use for requests to the server.
:type timeout: int
:param verify: Boolean value to enable or disable certificate
validation or a string
containing a path to a CA bundle to use
:type verify: Union[bool,str]
:param proxies: The proxies servers requests is sent by.
:type proxies: dict
:param cert: An SSL certificate used by the requested host to
authenticate the client.
Either a path to an SSL certificate file, or two-tuple of
(certificate file, key file).
:type cert: Union[str,Tuple[str,str]]
:param max_retries: The total number of times to retry HTTP requests.
:type max_retries: int
"""
self.base_url = base_url
self.headers = headers
self.timeout = timeout
self.verify = verify
self.cert = cert
self._s = requests.Session()
self._s.auth = lambda x: x # don't let requests add auth headers
# retry once to reset connection with Keycloak after tomcat's
ConnectionTimeout
# see https://github.com/marcospereirampj/python-keycloak/issues/36
for protocol in ("https://", "http://"):
adapter = HTTPAdapter(max_retries=max_retries)
# adds POST to retry whitelist
allowed_methods = set(adapter.max_retries.allowed_methods)
allowed_methods.add("POST")
adapter.max_retries.allowed_methods = frozenset(allowed_methods)
self._s.mount(protocol, adapter)
if proxies:
self._s.proxies.update(proxies)
> self.async_s = httpx.AsyncClient(verify=verify, proxies=proxies,
> cert=cert)
E TypeError: AsyncClient.__init__() got an unexpected keyword argument
'proxies'
keycloak/connection.py:105: TypeError
_________________________________ test_headers _________________________________
def test_headers():
"""Test headers manipulation."""
> cm = ConnectionManager(base_url="http://test.test", headers={"H": "A"})
tests/test_connection.py:21:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <keycloak.connection.ConnectionManager object at 0x7fa58eb40550>
base_url = 'http://test.test', headers = {'H': 'A'}, timeout = 60, verify = True
proxies = None, cert = None, max_retries = 1
def __init__(
self, base_url, headers={}, timeout=60, verify=True, proxies=None,
cert=None, max_retries=1
):
"""Init method.
:param base_url: The server URL.
:type base_url: str
:param headers: The header parameters of the requests to the server.
:type headers: dict
:param timeout: Timeout to use for requests to the server.
:type timeout: int
:param verify: Boolean value to enable or disable certificate
validation or a string
containing a path to a CA bundle to use
:type verify: Union[bool,str]
:param proxies: The proxies servers requests is sent by.
:type proxies: dict
:param cert: An SSL certificate used by the requested host to
authenticate the client.
Either a path to an SSL certificate file, or two-tuple of
(certificate file, key file).
:type cert: Union[str,Tuple[str,str]]
:param max_retries: The total number of times to retry HTTP requests.
:type max_retries: int
"""
self.base_url = base_url
self.headers = headers
self.timeout = timeout
self.verify = verify
self.cert = cert
self._s = requests.Session()
self._s.auth = lambda x: x # don't let requests add auth headers
# retry once to reset connection with Keycloak after tomcat's
ConnectionTimeout
# see https://github.com/marcospereirampj/python-keycloak/issues/36
for protocol in ("https://", "http://"):
adapter = HTTPAdapter(max_retries=max_retries)
# adds POST to retry whitelist
allowed_methods = set(adapter.max_retries.allowed_methods)
allowed_methods.add("POST")
adapter.max_retries.allowed_methods = frozenset(allowed_methods)
self._s.mount(protocol, adapter)
if proxies:
self._s.proxies.update(proxies)
> self.async_s = httpx.AsyncClient(verify=verify, proxies=proxies,
> cert=cert)
E TypeError: AsyncClient.__init__() got an unexpected keyword argument
'proxies'
keycloak/connection.py:105: TypeError
_____________________________ test_bad_connection ______________________________
def test_bad_connection():
"""Test bad connection."""
> cm = ConnectionManager(base_url="http://not.real.domain")
tests/test_connection.py:35:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <keycloak.connection.ConnectionManager object at 0x7fa58eb41bd0>
base_url = 'http://not.real.domain', headers = {}, timeout = 60, verify = True
proxies = None, cert = None, max_retries = 1
def __init__(
self, base_url, headers={}, timeout=60, verify=True, proxies=None,
cert=None, max_retries=1
):
"""Init method.
:param base_url: The server URL.
:type base_url: str
:param headers: The header parameters of the requests to the server.
:type headers: dict
:param timeout: Timeout to use for requests to the server.
:type timeout: int
:param verify: Boolean value to enable or disable certificate
validation or a string
containing a path to a CA bundle to use
:type verify: Union[bool,str]
:param proxies: The proxies servers requests is sent by.
:type proxies: dict
:param cert: An SSL certificate used by the requested host to
authenticate the client.
Either a path to an SSL certificate file, or two-tuple of
(certificate file, key file).
:type cert: Union[str,Tuple[str,str]]
:param max_retries: The total number of times to retry HTTP requests.
:type max_retries: int
"""
self.base_url = base_url
self.headers = headers
self.timeout = timeout
self.verify = verify
self.cert = cert
self._s = requests.Session()
self._s.auth = lambda x: x # don't let requests add auth headers
# retry once to reset connection with Keycloak after tomcat's
ConnectionTimeout
# see https://github.com/marcospereirampj/python-keycloak/issues/36
for protocol in ("https://", "http://"):
adapter = HTTPAdapter(max_retries=max_retries)
# adds POST to retry whitelist
allowed_methods = set(adapter.max_retries.allowed_methods)
allowed_methods.add("POST")
adapter.max_retries.allowed_methods = frozenset(allowed_methods)
self._s.mount(protocol, adapter)
if proxies:
self._s.proxies.update(proxies)
> self.async_s = httpx.AsyncClient(verify=verify, proxies=proxies,
> cert=cert)
E TypeError: AsyncClient.__init__() got an unexpected keyword argument
'proxies'
keycloak/connection.py:105: TypeError
=============================== warnings summary ===============================
tests/test_connection.py:46
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_keycloak/build/tests/test_connection.py:46:
PytestUnknownMarkWarning: Unknown pytest.mark.asyncio - is this a typo? You
can register custom marks to avoid this warning - for details, see
https://docs.pytest.org/en/stable/how-to/mark.html
@pytest.mark.asyncio
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
FAILED tests/test_connection.py::test_connection_proxy - TypeError: AsyncClie...
FAILED tests/test_connection.py::test_headers - TypeError: AsyncClient.__init...
FAILED tests/test_connection.py::test_bad_connection - TypeError: AsyncClient...
=================== 3 failed, 33 passed, 1 warning in 0.07s ====================
E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_keycloak/build; python3.13 -m pytest
--ignore=tests/test_keycloak_admin.py --ignore=tests/test_keycloak_uma.py
--ignore=tests/test_keycloak_openid.py
dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.13
returned exit code 13
make[1]: *** [debian/rules:25: override_dh_auto_test] Error 25
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
make: *** [debian/rules:12: binary] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
--------------------------------------------------------------------------------
The above is just how the build ends and not necessarily the most relevant part.
If required, the full build log is available here:
https://people.debian.org/~sanvila/build-logs/202503/
About the archive rebuild: The build was made on virtual machines from AWS,
using sbuild and a reduced chroot with only build-essential packages.
If you could not reproduce the bug please contact me privately, as I
am willing to provide ssh access to a virtual machine where the bug is
fully reproducible.
If this is really a bug in one of the build-depends, please use
reassign and add an affects on src:python-keycloak, so that this is still
visible in the BTS web page for this package.
Thanks.
--- End Message ---
--- Begin Message ---
Source: python-keycloak
Source-Version: 5.3.1+dfsg-1
Done: Colin Watson <cjwat...@debian.org>
We believe that the bug you reported is fixed in the latest version of
python-keycloak, 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 1099...@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.
Debian distribution maintenance software
pp.
Colin Watson <cjwat...@debian.org> (supplier of updated python-keycloak 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: Mon, 03 Mar 2025 01:53:18 +0000
Source: python-keycloak
Architecture: source
Version: 5.3.1+dfsg-1
Distribution: unstable
Urgency: medium
Maintainer: Debian Python Team <team+pyt...@tracker.debian.org>
Changed-By: Colin Watson <cjwat...@debian.org>
Closes: 1099273
Changes:
python-keycloak (5.3.1+dfsg-1) unstable; urgency=medium
.
* Team upload.
* New upstream release:
- Change httpx proxies argument to mounts (closes: #1099273).
* Build-depend on python3-pytest-asyncio to fix warnings from test suite.
Checksums-Sha1:
3b08a156d9c5813890434f4838f1dd085e4486d0 2759 python-keycloak_5.3.1+dfsg-1.dsc
891cac93f85625457685f61993a47f72f9fe2efe 113480
python-keycloak_5.3.1+dfsg.orig.tar.xz
2e09c5c0159f213dc84fab010933ad97f7718644 3700
python-keycloak_5.3.1+dfsg-1.debian.tar.xz
5d364f14fe72641cbac467a88b5225ebc413021e 8461
python-keycloak_5.3.1+dfsg-1_source.buildinfo
Checksums-Sha256:
e25d6f213c1e1670d40503b79d03204327e2ca25d982be3c7d66ef786a13a514 2759
python-keycloak_5.3.1+dfsg-1.dsc
8f5b7d24d25d6ab0121b3db2ee3542f02b3ca6a7a7dd712c58ed4fb2f0405e39 113480
python-keycloak_5.3.1+dfsg.orig.tar.xz
d411bd36105da23c71266e55521087b615d8b92013ef9f9734e3758a3e33aa04 3700
python-keycloak_5.3.1+dfsg-1.debian.tar.xz
c9e6a66e46633ffb4f6f53b124af4a8932fb73a60befd98bc06ebb561b808fcf 8461
python-keycloak_5.3.1+dfsg-1_source.buildinfo
Files:
10735e62681e66066b9796bae5e7b951 2759 python optional
python-keycloak_5.3.1+dfsg-1.dsc
2845944ce6ef437e46bde9affa316d08 113480 python optional
python-keycloak_5.3.1+dfsg.orig.tar.xz
fea972521a17a76f8bd26d48b01e2cf4 3700 python optional
python-keycloak_5.3.1+dfsg-1.debian.tar.xz
b26ae74b4071185b44bc92e3a9b1c2fd 8461 python optional
python-keycloak_5.3.1+dfsg-1_source.buildinfo
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCgAdFiEErApP8SYRtvzPAcEROTWH2X2GUAsFAmfFDAAACgkQOTWH2X2G
UAvWOQ/8CA3/7rAitJ+d8d078Bkkx1Tg8JPcL4XvMqc1XzIN38XCE/H0NlNNYZrS
G/cf74SnTHJADFM6DnnNZWzxM6TvSTcL9IpzvO5UCw6zXAoJJf5j1itRBjBJbh0j
ULUgj9/Rj8p3nSgh8LYH3rrlAY+MrRgScfhXjkgc13C9ClnPn3yAzOtxfW2sZGLc
G89/9fCpCIs7T6S/ovSwNQit7uLryN4bpNQnadL4eJ0ftg9nWZ5KNdk0mngWRadM
ZVAxCLYEnmY1vhtwaG286Yb8US4wJl8JF6YFNi5d/nfM27QOvPOfAORFgqO2ogh4
6SccNTrn1xCqvMhQBokNxQU1yzDFjOMQV1vmrtWxssmgoU0+/QYWGgl6N6BfCz+E
ceeb9NtsuefZWNOLNd6Cn0+FCAlMPesC5LOcJ6HIdkY3G0pVC1Je1pn8Cds5qMHO
xcMEu04ytb2+jcew6V8iN3aJgcU3zuZREzaCtAKh728kv6KMH5WZjANz7b5rRlGg
WhBiv43R6oSukzKquJG7UtBYRZYxfmUChClvwQxB6O21kcfjU/+inrsUvkI3h3Op
slzCqIwc8TT9NbODQHtGknkp4m6dw6I81gXlyLYn2jNb69K8gRsA+nQoA9MHgKXe
Ubj1BUdueyj11gHXXkykZj4V7BTC2NWrqSvZmjDsIPtLVs3eThs=
=2NKc
-----END PGP SIGNATURE-----
pgp21lKU5yzcl.pgp
Description: PGP signature
--- End Message ---