Package: src:python-respx
Version: 0.21.1-2
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
I: pybuild base:311: python3.13 setup.py clean 
running clean
removing '/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_respx/build' (and everything 
under it)
'build/bdist.linux-x86_64' does not exist -- can't clean it
'build/scripts-3.13' does not exist -- can't clean it
   dh_autoreconf_clean -O--buildsystem=pybuild
   debian/rules override_dh_clean
make[1]: Entering directory '/<<PKGBUILDDIR>>'
dh_clean
rm -f coverage.xml
rm -f .coverage

[... snipped ...]

    next(self.gen)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <respx.router.MockRouter object at 0x7fa18f9d3920>
request = <Request(b'GET', 'https://foo.bar/')>

    @contextmanager
    def resolver(self, request: httpx.Request) -> Generator[ResolvedRoute, 
None, None]:
        resolved = ResolvedRoute()
    
        try:
            yield resolved
    
            if resolved.route is None:
                # Assert we always get a route match, if check is enabled
                if self._assert_all_mocked:
>                   raise AllMockedAssertionError(f"RESPX: {request!r} not 
> mocked!")
E                   respx.models.AllMockedAssertionError: RESPX: 
<Request(b'GET', 'https://foo.bar/')> not mocked!

respx/router.py:250: AllMockedAssertionError
_____________________________ test_route_rollback ______________________________

    async def test_route_rollback():
        respx_mock = respx.mock()
    
        def example(request, route):
            route.mock(return_value=httpx.Response(404))
            return httpx.Response(202)
    
        route = respx_mock.delete("https://example.org/foobar/";)
        route.side_effect = example
    
        with respx_mock:
            async with httpx.AsyncClient(base_url="https://example.org/";) as 
client:
>               response = await client.delete("/foobar/")

tests/test_mock.py:725: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib/python3/dist-packages/httpx/_client.py:1966: in delete
    return await self.request(
/usr/lib/python3/dist-packages/httpx/_client.py:1540: in request
    return await self.send(request, auth=auth, 
follow_redirects=follow_redirects)
/usr/lib/python3/dist-packages/httpx/_client.py:1629: in send
    response = await self._send_handling_auth(
/usr/lib/python3/dist-packages/httpx/_client.py:1657: in _send_handling_auth
    response = await self._send_handling_redirects(
/usr/lib/python3/dist-packages/httpx/_client.py:1694: in 
_send_handling_redirects
    response = await self._send_single_request(request)
/usr/lib/python3/dist-packages/httpx/_client.py:1730: in _send_single_request
    response = await transport.handle_async_request(request)
/usr/lib/python3/dist-packages/httpx/_transports/default.py:394: in 
handle_async_request
    resp = await self._pool.handle_async_request(req)
respx/mocks.py:190: in amock
    response = await cls._send_async_request(
respx/mocks.py:224: in _send_async_request
    httpx_response = await cls.async_handler(httpx_request)
respx/mocks.py:136: in async_handler
    raise assertion_error
respx/mocks.py:129: in async_handler
    httpx_response = await router.async_handler(httpx_request)
respx/router.py:318: in async_handler
    resolved = await self.aresolve(request)
respx/router.py:291: in aresolve
    with self.resolver(request) as resolved:
/usr/lib/python3.13/contextlib.py:148: in __exit__
    next(self.gen)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <respx.router.MockRouter object at 0x7fa18f1107a0>
request = <Request(b'DELETE', 'https://example.org/foobar/')>

    @contextmanager
    def resolver(self, request: httpx.Request) -> Generator[ResolvedRoute, 
None, None]:
        resolved = ResolvedRoute()
    
        try:
            yield resolved
    
            if resolved.route is None:
                # Assert we always get a route match, if check is enabled
                if self._assert_all_mocked:
>                   raise AllMockedAssertionError(f"RESPX: {request!r} not 
> mocked!")
E                   respx.models.AllMockedAssertionError: RESPX: 
<Request(b'DELETE', 'https://example.org/foobar/')> not mocked!

respx/router.py:250: AllMockedAssertionError
___________________________ test_respx_mock_fixture ____________________________

testdir = <Testdir 
local('/tmp/pytest-of-buildd/pytest-0/test_respx_mock_fixture0')>

    def test_respx_mock_fixture(testdir):
        testdir.makepyfile(
            """
            import httpx
            import pytest
            from respx.plugin import respx_mock
    
            @pytest.fixture
            def some_fixture():
                yield "foobar"
    
            def test_plain_fixture(respx_mock):
                route = respx_mock.get("https://foo.bar/";) % 204
                response = httpx.get("https://foo.bar/";)
                assert response.status_code == 204
    
    
            @pytest.mark.respx(base_url="https://foo.bar";, 
assert_all_mocked=False)
            def test_marked_fixture(respx_mock):
                route = respx_mock.get("/") % 204
                response = httpx.get("https://foo.bar/";)
                assert response.status_code == 204
                response = httpx.get("https://example.org/";)
                assert response.status_code == 200
    
    
            def test_with_extra_fixture(respx_mock, some_fixture):
                import respx
                assert isinstance(respx_mock, respx.Router)
                assert some_fixture == "foobar"
    
    
            @pytest.mark.respx(assert_all_mocked=False)
            def test_marked_with_extra_fixture(respx_mock, some_fixture):
                import respx
                assert isinstance(respx_mock, respx.Router)
                assert some_fixture == "foobar"
            """
        )
        result = testdir.runpytest("-p", "respx")
>       result.assert_outcomes(passed=4)
E       AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 
0,...pped': 0, ...}
E         
E         Omitting 3 identical items, use -vv to show
E         Differing items:
E         {'passed': 2} != {'passed': 4}
E         {'failed': 2} != {'failed': 0}
E         {'errors': 1} != {'errors': 0}
E         Use -v to get more diff

/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_respx/build/tests/test_plugin.py:41: 
AssertionError
----------------------------- Captured stdout call -----------------------------
============================= test session starts ==============================
platform linux -- Python 3.13.2, pytest-8.3.4, pluggy-1.5.0
rootdir: /tmp/pytest-of-buildd/pytest-0/test_respx_mock_fixture0
plugins: asyncio-0.25.1, twisted-1.14.3, trio-0.8.0, cov-5.0.0, anyio-4.8.0, 
typeguard-4.4.2, tornasync-0.6.0.post2
asyncio: mode=Mode.STRICT, asyncio_default_fixture_loop_scope=None
collected 4 items

test_respx_mock_fixture.py FFE..                                         [100%]

==================================== ERRORS ====================================
___________________ ERROR at teardown of test_marked_fixture ___________________

request = <SubRequest 'respx_mock' for <Function test_marked_fixture>>

    @pytest.fixture()
    def respx_mock(request):
        respx_marker = request.node.get_closest_marker("respx")
    
        mock_router: MockRouter = (
            respx.mock
            if respx_marker is None
            else cast(MockRouter, respx.mock(**respx_marker.kwargs))
        )
    
>       with mock_router:

/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_respx/build/respx/plugin.py:29: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_respx/build/respx/router.py:437: in 
__exit__
    self.stop(quiet=bool(exc_type is not None))
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_respx/build/respx/router.py:479: in stop
    self.assert_all_called()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <respx.router.MockRouter object at 0x7fa18f112de0>

    def assert_all_called(self) -> None:
        not_called_routes = [route for route in self.routes if not route.called]
>       assert not_called_routes == [], "RESPX: some routes were not called!"
E       AssertionError: RESPX: some routes were not called!

/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_respx/build/respx/router.py:102: 
AssertionError
=================================== FAILURES ===================================
______________________________ test_plain_fixture ______________________________

respx_mock = <respx.router.MockRouter object at 0x7fa19115b4d0>

    def test_plain_fixture(respx_mock):
        route = respx_mock.get("https://foo.bar/";) % 204
>       response = httpx.get("https://foo.bar/";)

test_respx_mock_fixture.py:11: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib/python3/dist-packages/httpx/_api.py:195: in get
    return request(
/usr/lib/python3/dist-packages/httpx/_api.py:109: in request
    return client.request(
/usr/lib/python3/dist-packages/httpx/_client.py:825: in request
    return self.send(request, auth=auth, follow_redirects=follow_redirects)
/usr/lib/python3/dist-packages/httpx/_client.py:914: in send
    response = self._send_handling_auth(
/usr/lib/python3/dist-packages/httpx/_client.py:942: in _send_handling_auth
    response = self._send_handling_redirects(
/usr/lib/python3/dist-packages/httpx/_client.py:979: in _send_handling_redirects
    response = self._send_single_request(request)
/usr/lib/python3/dist-packages/httpx/_client.py:1014: in _send_single_request
    response = transport.handle_request(request)
/usr/lib/python3/dist-packages/httpx/_transports/default.py:250: in 
handle_request
    resp = self._pool.handle_request(req)
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_respx/build/respx/mocks.py:181: in mock
    response = cls._send_sync_request(
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_respx/build/respx/mocks.py:212: in 
_send_sync_request
    httpx_response = cls.handler(httpx_request)
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_respx/build/respx/mocks.py:120: in 
handler
    raise assertion_error
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_respx/build/respx/mocks.py:113: in 
handler
    httpx_response = router.handler(httpx_request)
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_respx/build/respx/router.py:313: in 
handler
    resolved = self.resolve(request)
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_respx/build/respx/router.py:277: in 
resolve
    with self.resolver(request) as resolved:
/usr/lib/python3.13/contextlib.py:148: in __exit__
    next(self.gen)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <respx.router.MockRouter object at 0x7fa19115b4d0>
request = <Request(b'GET', 'https://foo.bar/')>

    @contextmanager
    def resolver(self, request: httpx.Request) -> Generator[ResolvedRoute, 
None, None]:
        resolved = ResolvedRoute()
    
        try:
            yield resolved
    
            if resolved.route is None:
                # Assert we always get a route match, if check is enabled
                if self._assert_all_mocked:
>                   raise AllMockedAssertionError(f"RESPX: {request!r} not 
> mocked!")
E                   respx.models.AllMockedAssertionError: RESPX: 
<Request(b'GET', 'https://foo.bar/')> not mocked!

/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_respx/build/respx/router.py:250: 
AllMockedAssertionError
_____________________________ test_marked_fixture ______________________________

respx_mock = <respx.router.MockRouter object at 0x7fa18f112de0>

    @pytest.mark.respx(base_url="https://foo.bar";, assert_all_mocked=False)
    def test_marked_fixture(respx_mock):
        route = respx_mock.get("/") % 204
        response = httpx.get("https://foo.bar/";)
>       assert response.status_code == 204
E       assert 200 == 204
E        +  where 200 = <Response [200 OK]>.status_code

test_respx_mock_fixture.py:19: AssertionError
=============================== warnings summary ===============================
../../../../usr/lib/python3/dist-packages/_pytest/config/__init__.py:810
  /usr/lib/python3/dist-packages/_pytest/config/__init__.py:810: 
PytestAssertRewriteWarning: Module already imported so cannot be rewritten: 
respx
    self.import_plugin(arg, consider_entry_points=True)

test_respx_mock_fixture.py:15
  
/tmp/pytest-of-buildd/pytest-0/test_respx_mock_fixture0/test_respx_mock_fixture.py:15:
 PytestUnknownMarkWarning: Unknown pytest.mark.respx - 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.respx(base_url="https://foo.bar";, assert_all_mocked=False)

test_respx_mock_fixture.py:30
  
/tmp/pytest-of-buildd/pytest-0/test_respx_mock_fixture0/test_respx_mock_fixture.py:30:
 PytestUnknownMarkWarning: Unknown pytest.mark.respx - 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.respx(assert_all_mocked=False)

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
FAILED test_respx_mock_fixture.py::test_plain_fixture - respx.models.AllMocke...
FAILED test_respx_mock_fixture.py::test_marked_fixture - assert 200 == 204
ERROR test_respx_mock_fixture.py::test_marked_fixture - AssertionError: RESPX...
=============== 2 failed, 2 passed, 3 warnings, 1 error in 0.23s ===============
_________________________________ test_asyncio _________________________________

    def test_asyncio():
        import asyncio
    
        loop = asyncio.new_event_loop()
        try:
>           loop.run_until_complete(backend_test())

tests/test_stats.py:97: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib/python3.13/asyncio/base_events.py:725: in run_until_complete
    return future.result()
respx/router.py:407: in _async_decorator
    return await func(*args, **kwargs)
tests/test_stats.py:43: in backend_test
    get_response = await client.get(url)
/usr/lib/python3/dist-packages/httpx/_client.py:1768: in get
    return await self.request(
/usr/lib/python3/dist-packages/httpx/_client.py:1540: in request
    return await self.send(request, auth=auth, 
follow_redirects=follow_redirects)
/usr/lib/python3/dist-packages/httpx/_client.py:1629: in send
    response = await self._send_handling_auth(
/usr/lib/python3/dist-packages/httpx/_client.py:1657: in _send_handling_auth
    response = await self._send_handling_redirects(
/usr/lib/python3/dist-packages/httpx/_client.py:1694: in 
_send_handling_redirects
    response = await self._send_single_request(request)
/usr/lib/python3/dist-packages/httpx/_client.py:1730: in _send_single_request
    response = await transport.handle_async_request(request)
/usr/lib/python3/dist-packages/httpx/_transports/default.py:394: in 
handle_async_request
    resp = await self._pool.handle_async_request(req)
respx/mocks.py:190: in amock
    response = await cls._send_async_request(
respx/mocks.py:224: in _send_async_request
    httpx_response = await cls.async_handler(httpx_request)
respx/mocks.py:136: in async_handler
    raise assertion_error
respx/mocks.py:129: in async_handler
    httpx_response = await router.async_handler(httpx_request)
respx/router.py:318: in async_handler
    resolved = await self.aresolve(request)
respx/router.py:291: in aresolve
    with self.resolver(request) as resolved:
/usr/lib/python3.13/contextlib.py:148: in __exit__
    next(self.gen)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <respx.router.MockRouter object at 0x7fa19115b4d0>
request = <Request(b'GET', 'https://foo.bar/1/')>

    @contextmanager
    def resolver(self, request: httpx.Request) -> Generator[ResolvedRoute, 
None, None]:
        resolved = ResolvedRoute()
    
        try:
            yield resolved
    
            if resolved.route is None:
                # Assert we always get a route match, if check is enabled
                if self._assert_all_mocked:
>                   raise AllMockedAssertionError(f"RESPX: {request!r} not 
> mocked!")
E                   respx.models.AllMockedAssertionError: RESPX: 
<Request(b'GET', 'https://foo.bar/1/')> not mocked!

respx/router.py:250: AllMockedAssertionError
__________________________________ test_trio ___________________________________

    def test_trio():  # pragma: nocover
        import trio
    
>       trio.run(backend_test)

tests/test_stats.py:105: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
respx/router.py:407: in _async_decorator
    return await func(*args, **kwargs)
tests/test_stats.py:43: in backend_test
    get_response = await client.get(url)
/usr/lib/python3/dist-packages/httpx/_client.py:1768: in get
    return await self.request(
/usr/lib/python3/dist-packages/httpx/_client.py:1540: in request
    return await self.send(request, auth=auth, 
follow_redirects=follow_redirects)
/usr/lib/python3/dist-packages/httpx/_client.py:1629: in send
    response = await self._send_handling_auth(
/usr/lib/python3/dist-packages/httpx/_client.py:1657: in _send_handling_auth
    response = await self._send_handling_redirects(
/usr/lib/python3/dist-packages/httpx/_client.py:1694: in 
_send_handling_redirects
    response = await self._send_single_request(request)
/usr/lib/python3/dist-packages/httpx/_client.py:1730: in _send_single_request
    response = await transport.handle_async_request(request)
/usr/lib/python3/dist-packages/httpx/_transports/default.py:394: in 
handle_async_request
    resp = await self._pool.handle_async_request(req)
respx/mocks.py:190: in amock
    response = await cls._send_async_request(
respx/mocks.py:224: in _send_async_request
    httpx_response = await cls.async_handler(httpx_request)
respx/mocks.py:136: in async_handler
    raise assertion_error
respx/mocks.py:129: in async_handler
    httpx_response = await router.async_handler(httpx_request)
respx/router.py:318: in async_handler
    resolved = await self.aresolve(request)
respx/router.py:291: in aresolve
    with self.resolver(request) as resolved:
/usr/lib/python3.13/contextlib.py:148: in __exit__
    next(self.gen)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <respx.router.MockRouter object at 0x7fa19115b4d0>
request = <Request(b'GET', 'https://foo.bar/1/')>

    @contextmanager
    def resolver(self, request: httpx.Request) -> Generator[ResolvedRoute, 
None, None]:
        resolved = ResolvedRoute()
    
        try:
            yield resolved
    
            if resolved.route is None:
                # Assert we always get a route match, if check is enabled
                if self._assert_all_mocked:
>                   raise AllMockedAssertionError(f"RESPX: {request!r} not 
> mocked!")
E                   respx.models.AllMockedAssertionError: RESPX: 
<Request(b'GET', 'https://foo.bar/1/')> not mocked!

respx/router.py:250: AllMockedAssertionError
=============================== warnings summary ===============================
../../../../../../usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:256
  /usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:256: 
PytestDeprecationWarning: mocked_foo is asynchronous and explicitly requests 
the "event_loop" fixture. Asynchronous fixtures and test functions should use 
"asyncio.get_running_loop()" instead.
    warnings.warn(

../../../../../../usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:256
  /usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:256: 
PytestDeprecationWarning: mocked_ham is asynchronous and explicitly requests 
the "event_loop" fixture. Asynchronous fixtures and test functions should use 
"asyncio.get_running_loop()" instead.
    warnings.warn(

.pybuild/cpython3_3.13_respx/build/tests/test_api.py::test_http_methods
  /usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:866: 
DeprecationWarning: The event_loop fixture provided by pytest-asyncio has been 
redefined in
  /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_respx/build/respx/fixtures.py:8
  Replacing the event_loop fixture with a custom implementation is deprecated
  and will lead to errors in the future.
  If you want to request an asyncio event loop with a scope other than function
  scope, use the "loop_scope" argument to the asyncio mark when marking the 
tests.
  If you want to return different types of event loops, use the 
event_loop_policy
  fixture.
  
    warnings.warn(

.pybuild/cpython3_3.13_respx/build/tests/test_plugin.py::test_respx_mock_fixture
  /usr/lib/python3/dist-packages/pytest_tornasync/plugin.py:33: 
PytestDeprecationWarning: The hookimpl pytest_pycollect_makeitem uses old-style 
configuration options (marks or attributes).
  Please use the pytest.hookimpl(tryfirst=True) decorator instead
   to configure the hooks.
   See 
https://docs.pytest.org/en/latest/deprecations.html#configuring-hook-specs-impls-using-markers
    @pytest.mark.tryfirst

.pybuild/cpython3_3.13_respx/build/tests/test_plugin.py::test_respx_mock_fixture
  /usr/lib/python3/dist-packages/pytest_tornasync/plugin.py:39: 
PytestDeprecationWarning: The hookimpl pytest_pyfunc_call uses old-style 
configuration options (marks or attributes).
  Please use the pytest.hookimpl(tryfirst=True) decorator instead
   to configure the hooks.
   See 
https://docs.pytest.org/en/latest/deprecations.html#configuring-hook-specs-impls-using-markers
    @pytest.mark.tryfirst

.pybuild/cpython3_3.13_respx/build/tests/test_plugin.py::test_respx_mock_fixture
  /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

---------- coverage: platform linux, python 3.13.2-final-0 -----------
Name                       Stmts   Miss  Cover   Missing
--------------------------------------------------------
respx/__init__.py              7      0   100%
respx/__version__.py           1      0   100%
respx/api.py                  42      2    95%   26, 31
respx/fixtures.py              8      0   100%
respx/handlers.py             18      0   100%
respx/mocks.py               197      3    98%   55, 214, 226
respx/models.py              284     10    96%   55, 60, 102, 183, 191, 
342-343, 351, 473-474
respx/patterns.py            455      0   100%
respx/plugin.py               12      1    92%   11
respx/router.py              220      2    99%   61, 140
respx/transports.py           45      0   100%
respx/types.py                18      0   100%
respx/utils.py                66      0   100%
tests/__init__.py              0      0   100%
tests/conftest.py             25      0   100%
tests/test_api.py            342    159    54%   32-72, 93-94, 113-124, 
133-134, 160-161, 177-178, 198-206, 238-246, 258-263, 271-272, 281-282, 
293-307, 315-316, 322-332, 337-344, 351-380, 424, 432-436, 464-465, 504, 523, 
532-545, 556-564, 573-589, 622
tests/test_mock.py           523    151    71%   32-37, 43-46, 54-64, 73-75, 
79, 88-90, 94, 161-164, 169, 177-189, 197-211, 224-237, 250-261, 294, 307-327, 
350-366, 383-399, 425-429, 480-489, 498-499, 704-710, 717-718, 726-734
tests/test_patterns.py       170      0   100%
tests/test_plugin.py           4      0   100%
tests/test_remote.py           4      0   100%
tests/test_router.py         348      0   100%
tests/test_stats.py           77     39    49%   44-89
tests/test_transports.py      49      0   100%
tests/test_utils.py            7      0   100%
--------------------------------------------------------
TOTAL                       2922    367    87%
Coverage XML written to file coverage.xml

FAIL Required test coverage of 95% not reached. Total coverage: 87.44%
=========================== short test summary info ============================
SKIPPED [2] tests/test_remote.py:12: Remote pass-through disabled
= 105 failed, 211 passed, 2 skipped, 3 deselected, 6 warnings, 2 errors in 
18.53s =
E: pybuild pybuild:389: test: plugin distutils failed with: exit code=1: cd 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_respx/build; python3.13 -m pytest tests
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:python-respx, so that this is still
visible in the BTS web page for this package.

Thanks.

Reply via email to