• Bug#1099268: pyecoforest: FTBFS: E respx.models.AllMockedAssertionError

    From Santiago Vila@21:1/5 to All on Sat Mar 1 22:10:11 2025
    Package: src:pyecoforest
    Version: 0.4.0-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
    debian/rules override_dh_auto_clean
    make[1]: Entering directory '/<<PKGBUILDDIR>>'
    dh_auto_clean
    rm -rf pyecoforest.egg-info/ docs/_build
    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

    [... snipped ...]

    httpx_response = await router.async_handler(httpx_request) /usr/lib/python3/dist-packages/respx/router.py:318: in async_handler
    resolved = await self.aresolve(request) /usr/lib/python3/dist-packages/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 0x7f629f6afe00>
    request = <Request(b'POST', 'http://127.0.0.1/recepcion_datos_4.cgi')>

    @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'POST', 'http://127.0.0.1/recepcion_datos_4.cgi')> not mocked!

    /usr/lib/python3/dist-packages/respx/router.py:250: AllMockedAssertionError
    _ test_get_errors[side_effect1-EcoforestConnectionError-Timeout occurred while connecting to the device.] _

    side_effect = TimeoutException('timeout')
    expected = <class 'pyecoforest.exceptions.EcoforestConnectionError'>
    message = 'Timeout occurred while connecting to the device.'

    @pytest.mark.asyncio
    @respx.mock
    @pytest.mark.parametrize(
    ("side_effect", "expected", "message"),
    [
    (
    httpx.Response(401),
    EcoforestAuthenticationRequired,
    "401",
    ),
    (
    httpx.TimeoutException("timeout"),
    EcoforestConnectionError,
    "Timeout occurred while connecting to the device.",
    ),
    (
    httpx.Response(500),
    EcoforestConnectionError,
    "Error occurred while communicating with device.",
    ),
    ],
    )
    async def test_get_errors(side_effect, expected, message):
    """Get status information with error."""
    target = _get_target()
    respx.post(path=URL_CGI, data={"idOperacion": API_STATUS_OP}).mock(
    side_effect=side_effect
    )
    respx.post(path=URL_CGI, data={"idOperacion": API_STATS_OP}).mock(
    side_effect=side_effect
    )
    respx.post(path=URL_CGI, data={"idOperacion": API_ALARMS_OP}).mock(
    side_effect=side_effect
    )

    with pytest.raises(expected) as err:
    await target.get()

    tests/test_api.py:126:
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pyecoforest/api.py:48: in get
    "status": await self._status(),
    pyecoforest/api.py:111: in _status
    return await self._request(data={"idOperacion": API_STATUS_OP}) pyecoforest/api.py:79: in _request
    response = await self._client.post( /usr/lib/python3/dist-packages/httpx/_client.py:1859: in post
    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) /usr/lib/python3/dist-packages/respx/mocks.py:190: in amock
    response = await cls._send_async_request( /usr/lib/python3/dist-packages/respx/mocks.py:224: in _send_async_request
    httpx_response = await cls.async_handler(httpx_request) /usr/lib/python3/dist-packages/respx/mocks.py:136: in async_handler
    raise assertion_error
    /usr/lib/python3/dist-packages/respx/mocks.py:129: in async_handler
    httpx_response = await router.async_handler(httpx_request) /usr/lib/python3/dist-packages/respx/router.py:318: in async_handler
    resolved = await self.aresolve(request) /usr/lib/python3/dist-packages/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 0x7f629f6afe00>
    request = <Request(b'POST', 'http://127.0.0.1/recepcion_datos_4.cgi')>

    @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'POST', 'http://127.0.0.1/recepcion_datos_4.cgi')> not mocked!

    /usr/lib/python3/dist-packages/respx/router.py:250: AllMockedAssertionError
    _ test_get_errors[side_effect2-EcoforestConnectionError-Error occurred while communicating with device.] _

    side_effect = <Response [500 Internal Server Error]>
    expected = <class 'pyecoforest.exceptions.EcoforestConnectionError'>
    message = 'Error occurred while communicating with device.'

    @pytest.mark.asyncio
    @respx.mock
    @pytest.mark.parametrize(
    ("side_effect", "expected", "message"),
    [
    (
    httpx.Response(401),
    EcoforestAuthenticationRequired,
    "401",
    ),
    (
    httpx.TimeoutException("timeout"),
    EcoforestConnectionError,
    "Timeout occurred while connecting to the device.",
    ),
    (
    httpx.Response(500),
    EcoforestConnectionError,
    "Error occurred while communicating with device.",
    ),
    ],
    )
    async def test_get_errors(side_effect, expected, message):
    """Get status information with error."""
    target = _get_target()
    respx.post(path=URL_CGI, data={"idOperacion": API_STATUS_OP}).mock(
    side_effect=side_effect
    )
    respx.post(path=URL_CGI, data={"idOperacion": API_STATS_OP}).mock(
    side_effect=side_effect
    )
    respx.post(path=URL_CGI, data={"idOperacion": API_ALARMS_OP}).mock(
    side_effect=side_effect
    )

    with pytest.raises(expected) as err:
    await target.get()

    tests/test_api.py:126:
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pyecoforest/api.py:48: in get
    "status": await self._status(),
    pyecoforest/api.py:111: in _status
    return await self._request(data={"idOperacion": API_STATUS_OP}) pyecoforest/api.py:79: in _request
    response = await self._client.post( /usr/lib/python3/dist-packages/httpx/_client.py:1859: in post
    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) /usr/lib/python3/dist-packages/respx/mocks.py:190: in amock
    response = await cls._send_async_request( /usr/lib/python3/dist-packages/respx/mocks.py:224: in _send_async_request
    httpx_response = await cls.async_handler(httpx_request) /usr/lib/python3/dist-packages/respx/mocks.py:136: in async_handler
    raise assertion_error
    /usr/lib/python3/dist-packages/respx/mocks.py:129: in async_handler
    httpx_response = await router.async_handler(httpx_request) /usr/lib/python3/dist-packages/respx/router.py:318: in async_handler
    resolved = await self.aresolve(request) /usr/lib/python3/dist-packages/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 0x7f629f6afe00>
    request = <Request(b'POST', 'http://127.0.0.1/recepcion_datos_4.cgi')>

    @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'POST', 'http://127.0.0.1/recepcion_datos_4.cgi')> not mocked!

    /usr/lib/python3/dist-packages/respx/router.py:250: AllMockedAssertionError _____________________________ test_set_temperature _____________________________

    @pytest.mark.asyncio
    @respx.mock
    async def test_set_temperature():
    """Set target temperature."""
    target = _get_target()
    respx.post(path=URL_CGI, data={"idOperacion": API_STATUS_OP}).mock(
    return_value=httpx.Response(
    200,
    text=_mutate_fixture(
    "op-1002-status.txt",
    [("consigna_temperatura=20.5", "consigna_temperatura=23.5")],
    ),
    )
    )
    respx.post(path=URL_CGI, data={"idOperacion": API_STATS_OP}).mock(
    return_value=httpx.Response(200, text=_load_fixture("op-1020-stats.txt"))
    )
    respx.post(path=URL_CGI, data={"idOperacion": API_ALARMS_OP}).mock(
    return_value=httpx.Response(200, text=_load_fixture("op-1079-alarms.txt"))
    )
    respx.post(
    path=URL_CGI, data={"idOperacion": API_SET_TEMP_OP, "temperatura": 23.5}
    ).mock(return_value=httpx.Response(200, text=_load_fixture("op-1019-set-temp.txt")))

    actual = await target.set_temperature(23.5)

    tests/test_api.py:154:
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pyecoforest/api.py:63: in set_temperature
    await self._request(
    pyecoforest/api.py:79: in _request
    response = await self._client.post( /usr/lib/python3/dist-packages/httpx/_client.py:1859: in post
    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) /usr/lib/python3/dist-packages/respx/mocks.py:190: in amock
    response = await cls._send_async_request( /usr/lib/python3/dist-packages/respx/mocks.py:224: in _send_async_request
    httpx_response = await cls.async_handler(httpx_request) /usr/lib/python3/dist-packages/respx/mocks.py:136: in async_handler
    raise assertion_error
    /usr/lib/python3/dist-packages/respx/mocks.py:129: in async_handler
    httpx_response = await router.async_handler(httpx_request) /usr/lib/python3/dist-packages/respx/router.py:318: in async_handler
    resolved = await self.aresolve(request) /usr/lib/python3/dist-packages/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 0x7f629f6afe00>
    request = <Request(b'POST', 'http://127.0.0.1/recepcion_datos_4.cgi')>

    @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'POST', 'http://127.0.0.1/recepcion_datos_4.cgi')> not mocked!

    /usr/lib/python3/dist-packages/respx/router.py:250: AllMockedAssertionError ________________________________ test_set_power ________________________________

    @pytest.mark.asyncio
    @respx.mock
    async def test_set_power():
    """Set target power."""
    target = _get_target()
    respx.post(path=URL_CGI, data={"idOperacion": API_STATUS_OP}).mock(
    return_value=httpx.Response(
    200,
    text=_mutate_fixture(
    "op-1002-status.txt", [("consigna_potencia=3", "consigna_potencia=5")]
    ),
    )
    )
    respx.post(path=URL_CGI, data={"idOperacion": API_STATS_OP}).mock(
    return_value=httpx.Response(200, text=_load_fixture("op-1020-stats.txt"))
    )
    respx.post(path=URL_CGI, data={"idOperacion": API_ALARMS_OP}).mock(
    return_value=httpx.Response(200, text=_load_fixture("op-1079-alarms.txt"))
    )
    respx.post(
    path=URL_CGI, data={"idOperacion": API_SET_POWER_OP, "potencia": 5}
    ).mock(
    return_value=httpx.Response(200, text=_load_fixture("op-1004-set-power.txt"))
    )

    actual = await target.set_power(5)

    tests/test_api.py:210:
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pyecoforest/api.py:70: in set_power
    await self._request(data={"idOperacion": API_SET_POWER_OP, "potencia": target})
    pyecoforest/api.py:79: in _request
    response = await self._client.post( /usr/lib/python3/dist-packages/httpx/_client.py:1859: in post
    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) /usr/lib/python3/dist-packages/respx/mocks.py:190: in amock
    response = await cls._send_async_request( /usr/lib/python3/dist-packages/respx/mocks.py:224: in _send_async_request
    httpx_response = await cls.async_handler(httpx_request) /usr/lib/python3/dist-packages/respx/mocks.py:136: in async_handler
    raise assertion_error
    /usr/lib/python3/dist-packages/respx/mocks.py:129: in async_handler
    httpx_response = await router.async_handler(httpx_request) /usr/lib/python3/dist-packages/respx/router.py:318: in async_handler
    resolved = await self.aresolve(request) /usr/lib/python3/dist-packages/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 0x7f629f6afe00>
    request = <Request(b'POST', 'http://127.0.0.1/recepcion_datos_4.cgi')>

    @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'POST', 'http://127.0.0.1/recepcion_datos_4.cgi')> not mocked!

    /usr/lib/python3/dist-packages/respx/router.py:250: AllMockedAssertionError __________________________________ test_turn ___________________________________

    @pytest.mark.asyncio
    @respx.mock
    async def test_turn():
    """Turn on device status."""
    target = _get_target()
    respx.post(path=URL_CGI, data={"idOperacion": API_STATUS_OP}).mock(
    return_value=httpx.Response(
    200,
    text=_mutate_fixture(
    "op-1002-status.txt",
    [("on_off=0", "on_off=1"), ("estado=0", "estado=1")],
    ),
    )
    )
    respx.post(path=URL_CGI, data={"idOperacion": API_STATS_OP}).mock(
    return_value=httpx.Response(200, text=_load_fixture("op-1020-stats.txt"))
    )
    respx.post(path=URL_CGI, data={"idOperacion": API_ALARMS_OP}).mock(
    return_value=httpx.Response(200, text=_load_fixture("op-1079-alarms.txt"))
    )
    respx.post(path=URL_CGI, data={"idOperacion": API_SET_STATE_OP, "on_off": 1}).mock(
    return_value=httpx.Response(200, text=_load_fixture("op-1004-set-power.txt"))
    )

    actual = await target.turn(True)

    tests/test_api.py:265:
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pyecoforest/api.py:56: in turn
    await self._request(
    pyecoforest/api.py:79: in _request
    response = await self._client.post( /usr/lib/python3/dist-packages/httpx/_client.py:1859: in post
    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) /usr/lib/python3/dist-packages/respx/mocks.py:190: in amock
    response = await cls._send_async_request( /usr/lib/python3/dist-packages/respx/mocks.py:224: in _send_async_request
    httpx_response = await cls.async_handler(httpx_request) /usr/lib/python3/dist-packages/respx/mocks.py:136: in async_handler
    raise assertion_error
    /usr/lib/python3/dist-packages/respx/mocks.py:129: in async_handler
    httpx_response = await router.async_handler(httpx_request) /usr/lib/python3/dist-packages/respx/router.py:318: in async_handler
    resolved = await self.aresolve(request) /usr/lib/python3/dist-packages/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 0x7f629f6afe00>
    request = <Request(b'POST', 'http://127.0.0.1/recepcion_datos_4.cgi')>

    @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'POST', 'http://127.0.0.1/recepcion_datos_4.cgi')> not mocked!

    /usr/lib/python3/dist-packages/respx/router.py:250: AllMockedAssertionError =========================== short test summary info ============================
    FAILED tests/test_api.py::test_get - respx.models.AllMockedAssertionError: RE...
    FAILED tests/test_api.py::test_get_errors[side_effect0-EcoforestAuthenticationRequired-401]
    FAILED tests/test_api.py::test_get_errors[side_effect1-EcoforestConnectionError-Timeout occurred while connecting to the device.]
    FAILED tests/test_api.py::test_get_errors[side_effect2-EcoforestConnectionError-Error occurred while communicating with device.]
    FAILED tests/test_api.py::test_set_temperature - respx.models.AllMockedAssert...
    FAILED tests/test_api.py::test_set_power - respx.models.AllMockedAssertionErr...
    FAILED tests/test_api.py::test_turn - respx.models.AllMockedAssertionError: R...
    ========================= 7 failed, 5 passed in 0.43s ==========================
    E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_pyecoforest/build; python3.13 -m pytest --no-cov
    dh_auto_test: error: pybuild --test -i python{version} -p 3.13 returned exit code 13
    make: *** [debian/rules:8: 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:pyecoforest, so that this is still
    visible in the BTS web page for this package.

    Thanks.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Debian Bug Tracking System@21:1/5 to All on Thu Apr 3 11:30:01 2025
    This is a multi-part message in MIME format...

    Your message dated Thu, 3 Apr 2025 10:25:12 +0100
    with message-id <saztfwxgxudfovttykzap6lt5lfebw2nqfemgyvu6l3yfvyrf3@cfaj2rv2u7je>
    and subject line pyecoforest builds successfully with sbuild unshare
    has caused the Debian Bug report #1099268,
    regarding pyecoforest: FTBFS: E respx.models.AllMockedAssertionError: RESPX: <Request(b'POST', 'http://127.0.0.1/recepcion_datos_4.cgi')> not mocked!
    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 owner@bugs.debian.org
    immediately.)


    --
    1099268: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1099268
    Debian Bug Tracking System
    Contact owner@bugs.debian.org with problems

    Received: (at submit) by bugs.debian.org; 1 Mar 2025 21:02:28 +0000 X-Spam-Checker-Version: SpamAssassin 3.4.6-bugs.debian.org_2005_01_02
    (2021-04-09) on buxtehude.debian.org
    X-Spam-Level:
    X-Spam-Status: No, score=-120.3 required=4.0 tests=ALL_TRUSTED,BAYES_00,
    BODY_INCLUDES_PACKAGE,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,
    DKIM_VALID_AU,DKIM_VALID_EF,FOURLA,FROMDEVELOPER,HAS_PACKAGE,
    IP_LINK_PLUS,NUMERIC_HTTP_ADDR,SPF_HELO_PASS,SPF_NONE,
    USER_IN_DKIM_WELCOMELIST,USER_IN_DKIM_WHITELIST,X_DEBBUGS_CC
    autolearn=ham autolearn_force=no
    version=3.4.6-bugs.debian.org_2005_01_02
    X-Spam-Bayes: score:0.0000 Tokens: new, 170; hammy, 150; neutral, 263; spammy,
    0. spammytokens: hammytokens:0.000-+--python3, 0.000-+--trixie,
    0.000-+--pkgbuilddir, 0.000-+--PKGBUILDDIR, 0.000-+--sk:dh_auto Return-path: <sanvila@debian.org>
    Received: from mailly.debian.org ([2