Package: src:pytest-httpx
Version: 0.34.0-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
   debian/rules override_dh_auto_clean
make[1]: Entering directory '/<<PKGBUILDDIR>>'
dh_auto_clean
rm -rf pytest_httpx.egg-info/
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
   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_pytest-httpx  
* Building wheel...
No `packages` or `py_modules` configuration, performing automatic discovery.
`flat-layout` detected -- analysing .
discovered packages -- ['pytest_httpx']
running bdist_wheel
running build
running build_py
creating build/lib/pytest_httpx
copying pytest_httpx/_httpx_internals.py -> build/lib/pytest_httpx
copying pytest_httpx/_httpx_mock.py -> build/lib/pytest_httpx
copying pytest_httpx/__init__.py -> build/lib/pytest_httpx
copying pytest_httpx/_request_matcher.py -> build/lib/pytest_httpx
copying pytest_httpx/_pretty_print.py -> build/lib/pytest_httpx
copying pytest_httpx/version.py -> build/lib/pytest_httpx
copying pytest_httpx/_options.py -> build/lib/pytest_httpx
running egg_info
creating pytest_httpx.egg-info
writing pytest_httpx.egg-info/PKG-INFO
writing dependency_links to pytest_httpx.egg-info/dependency_links.txt
writing entry points to pytest_httpx.egg-info/entry_points.txt
writing requirements to pytest_httpx.egg-info/requires.txt
writing top-level names to pytest_httpx.egg-info/top_level.txt
writing manifest file 'pytest_httpx.egg-info/SOURCES.txt'
reading manifest file 'pytest_httpx.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
adding license file 'LICENSE'
writing manifest file 'pytest_httpx.egg-info/SOURCES.txt'
copying pytest_httpx/py.typed -> build/lib/pytest_httpx
installing to build/bdist.linux-x86_64/wheel
running install
running install_lib
creating build/bdist.linux-x86_64/wheel
creating build/bdist.linux-x86_64/wheel/pytest_httpx
copying build/lib/pytest_httpx/_httpx_internals.py -> 
build/bdist.linux-x86_64/wheel/./pytest_httpx
copying build/lib/pytest_httpx/_httpx_mock.py -> 
build/bdist.linux-x86_64/wheel/./pytest_httpx
copying build/lib/pytest_httpx/__init__.py -> 
build/bdist.linux-x86_64/wheel/./pytest_httpx
copying build/lib/pytest_httpx/_request_matcher.py -> 
build/bdist.linux-x86_64/wheel/./pytest_httpx
copying build/lib/pytest_httpx/_pretty_print.py -> 
build/bdist.linux-x86_64/wheel/./pytest_httpx
copying build/lib/pytest_httpx/py.typed -> 
build/bdist.linux-x86_64/wheel/./pytest_httpx
copying build/lib/pytest_httpx/version.py -> 
build/bdist.linux-x86_64/wheel/./pytest_httpx
copying build/lib/pytest_httpx/_options.py -> 
build/bdist.linux-x86_64/wheel/./pytest_httpx
running install_egg_info
Copying pytest_httpx.egg-info to 
build/bdist.linux-x86_64/wheel/./pytest_httpx-0.34.0.egg-info
running install_scripts
creating build/bdist.linux-x86_64/wheel/pytest_httpx-0.34.0.dist-info/WHEEL
creating 
'/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_pytest-httpx/.tmp-dq5bmhgu/pytest_httpx-0.34.0-py3-none-any.whl'
 and adding 'build/bdist.linux-x86_64/wheel' to it
adding 'pytest_httpx/__init__.py'
adding 'pytest_httpx/_httpx_internals.py'
adding 'pytest_httpx/_httpx_mock.py'
adding 'pytest_httpx/_options.py'
adding 'pytest_httpx/_pretty_print.py'
adding 'pytest_httpx/_request_matcher.py'
adding 'pytest_httpx/py.typed'
adding 'pytest_httpx/version.py'
adding 'pytest_httpx-0.34.0.dist-info/LICENSE'
adding 'pytest_httpx-0.34.0.dist-info/METADATA'
adding 'pytest_httpx-0.34.0.dist-info/WHEEL'
adding 'pytest_httpx-0.34.0.dist-info/entry_points.txt'
adding 'pytest_httpx-0.34.0.dist-info/top_level.txt'
adding 'pytest_httpx-0.34.0.dist-info/RECORD'
removing build/bdist.linux-x86_64/wheel
Successfully built pytest_httpx-0.34.0-py3-none-any.whl
I: pybuild plugin_pyproject:144: Unpacking wheel built for python3.13 with 
"installer" module
   dh_auto_test -O--buildsystem=pybuild
I: pybuild base:311: cd 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_pytest-httpx/build; python3.13 -m 
pytest -k "not proxy"
============================= test session starts ==============================
platform linux -- Python 3.13.2, pytest-8.3.4, pluggy-1.5.0
rootdir: /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_pytest-httpx/build
configfile: pyproject.toml
plugins: httpx-0.34.0, asyncio-0.25.1, anyio-4.8.0, typeguard-4.4.2
asyncio: mode=Mode.STRICT, asyncio_default_fixture_loop_scope=function
collected 272 items / 10 deselected / 262 selected

tests/test_httpx_async.py .............................................. [ 17%]
.........................FF............................................. [ 45%]
.....                                                                    [ 46%]
tests/test_httpx_sync.py ............................................... [ 64%]
...................FF.................................................   [ 91%]
tests/test_plugin.py ......................                              [100%]

=================================== FAILURES ===================================
____________________________ test_json_not_matching ____________________________

httpx_mock = <pytest_httpx._httpx_mock.HTTPXMock object at 0x7fc9399b9e80>

    @pytest.mark.asyncio
    @pytest.mark.httpx_mock(assert_all_requests_were_expected=False)
    async def test_json_not_matching(httpx_mock: HTTPXMock) -> None:
        httpx_mock.add_response(match_json={"a": 1, "b": 2}, is_optional=True)
    
        async with httpx.AsyncClient() as client:
            with pytest.raises(httpx.TimeoutException) as exception_info:
                await client.post("https://test_url";, json={"c": 3, "b": 2, 
"a": 1})
>           assert (
                str(exception_info.value)
                == """No response can be found for POST request on 
https://test_url with b'{"c": 3, "b": 2, "a": 1}' body amongst:
    - Match any request with {'a': 1, 'b': 2} json body"""
            )
E           assert 'No response ... 2} json body' == 'No response ... 2} json 
body'
E             
E             Skipping 64 identical leading characters in diff, use -v to show
E             - th b'{"c": 3, "b": 2, "a": 1}' body amongst:
E             ?           -  -    -  -    -
E             + th b'{"c":3,"b":2,"a":1}' body amongst:
E               - Match any request with {'a': 1, 'b': 2} json body

tests/test_httpx_async.py:1481: AssertionError
______________________ test_headers_and_json_not_matching ______________________

httpx_mock = <pytest_httpx._httpx_mock.HTTPXMock object at 0x7fc939ed8ec0>

    @pytest.mark.asyncio
    @pytest.mark.httpx_mock(assert_all_requests_were_expected=False)
    async def test_headers_and_json_not_matching(httpx_mock: HTTPXMock) -> None:
        httpx_mock.add_response(
            match_json={"a": 1, "b": 2},
            match_headers={"foo": "bar"},
            is_optional=True,
        )
    
        async with httpx.AsyncClient() as client:
            with pytest.raises(httpx.TimeoutException) as exception_info:
                await client.post("https://test_url";, json={"c": 3, "b": 2, 
"a": 1})
>           assert (
                str(exception_info.value)
                == """No response can be found for POST request on 
https://test_url with {} headers and b'{"c": 3, "b": 2, "a": 1}' body amongst:
    - Match any request with {'foo': 'bar'} headers and {'a': 1, 'b': 2} json 
body"""
            )
E           assert 'No response ... 2} json body' == 'No response ... 2} json 
body'
E             
E             Skipping 79 identical leading characters in diff, use -v to show
E             - nd b'{"c": 3, "b": 2, "a": 1}' body amongst:
E             ?           -  -    -  -    -
E             + nd b'{"c":3,"b":2,"a":1}' body amongst:
E               - Match any request with {'foo': 'bar'} headers and {'a': 1, 
'b': 2} json body

tests/test_httpx_async.py:1500: AssertionError
____________________________ test_json_not_matching ____________________________

httpx_mock = <pytest_httpx._httpx_mock.HTTPXMock object at 0x7fc9399f11d0>

    @pytest.mark.httpx_mock(assert_all_requests_were_expected=False)
    def test_json_not_matching(httpx_mock: HTTPXMock) -> None:
        httpx_mock.add_response(match_json={"a": 1, "b": 2}, is_optional=True)
    
        with httpx.Client() as client:
            with pytest.raises(httpx.TimeoutException) as exception_info:
                client.post("https://test_url";, json={"c": 3, "b": 2, "a": 1})
>           assert (
                str(exception_info.value)
                == """No response can be found for POST request on 
https://test_url with b'{"c": 3, "b": 2, "a": 1}' body amongst:
    - Match any request with {'a': 1, 'b': 2} json body"""
            )
E           assert 'No response ... 2} json body' == 'No response ... 2} json 
body'
E             
E             Skipping 64 identical leading characters in diff, use -v to show
E             - th b'{"c": 3, "b": 2, "a": 1}' body amongst:
E             ?           -  -    -  -    -
E             + th b'{"c":3,"b":2,"a":1}' body amongst:
E               - Match any request with {'a': 1, 'b': 2} json body

tests/test_httpx_sync.py:1240: AssertionError
______________________ test_headers_and_json_not_matching ______________________

httpx_mock = <pytest_httpx._httpx_mock.HTTPXMock object at 0x7fc939e5c2f0>

    @pytest.mark.httpx_mock(assert_all_requests_were_expected=False)
    def test_headers_and_json_not_matching(httpx_mock: HTTPXMock) -> None:
        httpx_mock.add_response(
            match_json={"a": 1, "b": 2},
            match_headers={"foo": "bar"},
            is_optional=True,
        )
    
        with httpx.Client() as client:
            with pytest.raises(httpx.TimeoutException) as exception_info:
                client.post("https://test_url";, json={"c": 3, "b": 2, "a": 1})
>           assert (
                str(exception_info.value)
                == """No response can be found for POST request on 
https://test_url with {} headers and b'{"c": 3, "b": 2, "a": 1}' body amongst:
    - Match any request with {'foo': 'bar'} headers and {'a': 1, 'b': 2} json 
body"""
            )
E           assert 'No response ... 2} json body' == 'No response ... 2} json 
body'
E             
E             Skipping 79 identical leading characters in diff, use -v to show
E             - nd b'{"c": 3, "b": 2, "a": 1}' body amongst:
E             ?           -  -    -  -    -
E             + nd b'{"c":3,"b":2,"a":1}' body amongst:
E               - Match any request with {'foo': 'bar'} headers and {'a': 1, 
'b': 2} json body

tests/test_httpx_sync.py:1258: AssertionError
=============================== warnings summary ===============================
tests/test_httpx_async.py: 1 warning
tests/test_httpx_sync.py: 1 warning
tests/test_plugin.py: 22 warnings
  /usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:207: 
PytestDeprecationWarning: The configuration option 
"asyncio_default_fixture_loop_scope" is unset.
  The event loop scope for asynchronous fixtures will default to the fixture 
caching scope. Future versions of pytest-asyncio will default the loop scope 
for asynchronous fixtures to function scope. Set the default fixture loop scope 
explicitly in order to avoid unexpected behavior in the future. Valid fixture 
loop scopes are: "function", "class", "module", "package", "session"
  
    warnings.warn(PytestDeprecationWarning(_DEFAULT_FIXTURE_LOOP_SCOPE_UNSET))

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
FAILED tests/test_httpx_async.py::test_json_not_matching - assert 'No respons...
FAILED tests/test_httpx_async.py::test_headers_and_json_not_matching - assert...
FAILED tests/test_httpx_sync.py::test_json_not_matching - assert 'No response...
FAILED tests/test_httpx_sync.py::test_headers_and_json_not_matching - assert ...
========== 4 failed, 258 passed, 10 deselected, 24 warnings in 6.34s ===========
E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_pytest-httpx/build; python3.13 -m 
pytest -k "not proxy"
dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.13 
returned exit code 13
make: *** [debian/rules:7: binary] Error 25
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:pytest-httpx, so that this is still
visible in the BTS web page for this package.

Thanks.

Reply via email to