• Bug#1099279: python-xbox-webapi: FTBFS: E respx.models.AllMockedAsserti

    From Santiago Vila@21:1/5 to All on Sat Mar 1 22:10:09 2025
    Package: src:python-xbox-webapi
    Version: 2.1.0-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
    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_python-xbox-webapi
    * Building wheel...

    [... snipped ...]

    )
    ret = await xbl_client.userstats.get_stats_batch_by_scid(
    ["2669321029139235"], "1370999b-fca2-4c53-8ec5-73493bcb67e5"
    )

    tests/test_userstats.py:56:
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbox/webapi/api/provider/userstats/__init__.py:141: in get_stats_batch_by_scid
    resp = await self.client.session.post(
    xbox/webapi/api/client.py:95: in post
    return await self.request("POST", url, **kwargs) xbox/webapi/api/client.py:81: in request
    return await self._auth_mgr.session.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 0x7f95890afe00>
    request = <Request(b'POST', 'https://userstats.xboxlive.com/batch')>

    @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', 'https://userstats.xboxlive.com/batch')> not mocked!

    /usr/lib/python3/dist-packages/respx/router.py:250: AllMockedAssertionError ___________________________ test_get_title_endpoints ___________________________

    respx_mock = <respx.router.MockRouter object at 0x7f95890afe00>
    xal_mgr = <xbox.webapi.authentication.xal.XALManager object at 0x7f958800fb60>

    @pytest.mark.asyncio
    async def test_get_title_endpoints(respx_mock, xal_mgr):
    route = respx_mock.get("https://title.mgt.xboxlive.com").mock(
    return_value=Response(200, json=get_response_json("auth_title_endpoints"))
    )
    async with AsyncClient() as client:
    await xal_mgr.get_title_endpoints(client)

    tests/test_xal.py:13:
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbox/webapi/authentication/xal.py:125: in get_title_endpoints
    resp = await session.get(url, headers=headers, params=params) /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) /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 0x7f95890afe00>
    request = <Request(b'GET', 'https://title.mgt.xboxlive.com/titles/default/endpoints?type=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://title.mgt.xboxlive.com/titles/default/endpoints?type=1')> not mocked!

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

    respx_mock = <respx.router.MockRouter object at 0x7f95890afe00>
    xal_mgr = <xbox.webapi.authentication.xal.XALManager object at 0x7f9587f1fb10>

    @pytest.mark.asyncio
    async def test_get_device_token(respx_mock, xal_mgr):
    route = respx_mock.post(
    "https://device.auth.xboxlive.com/device/authenticate"
    ).mock(return_value=Response(200, json=get_response_json("auth_device_token")))
    await xal_mgr.request_device_token()

    tests/test_xal.py:22:
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbox/webapi/authentication/xal.py:156: in request_device_token
    resp = await self.session.send_signed("POST", url, headers=headers, json=data)
    xbox/webapi/common/signed_session.py:52: in send_signed
    return await self.send(prepared) /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 0x7f95890afe00>
    request = <Request(b'POST', 'https://device.auth.xboxlive.com/device/authenticate')>

    @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', 'https://device.auth.xboxlive.com/device/authenticate')> not mocked!

    /usr/lib/python3/dist-packages/respx/router.py:250: AllMockedAssertionError ___________________________ test_sisu_authentication ___________________________

    respx_mock = <respx.router.MockRouter object at 0x7f95890afe00>
    xal_mgr = <xbox.webapi.authentication.xal.XALManager object at 0x7f9587f1d1d0>

    @pytest.mark.asyncio
    async def test_sisu_authentication(respx_mock, xal_mgr):
    route = respx_mock.post("https://sisu.xboxlive.com/authenticate").mock(
    return_value=Response(
    200,
    json=get_response_json("xal_authentication_resp"),
    headers={"X-SessionId": "abcsession-id"},
    )
    )
    resp, session_id = await xal_mgr.request_sisu_authentication(
    "eyDeviceToken", "code_challenge_string", "state_string"
    )

    tests/test_xal.py:35:
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbox/webapi/authentication/xal.py:225: in request_sisu_authentication
    resp = await self.session.send_signed( xbox/webapi/common/signed_session.py:52: in send_signed
    return await self.send(prepared) /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 0x7f95890afe00>
    request = <Request(b'POST', 'https://sisu.xboxlive.com/authenticate')>

    @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', 'https://sisu.xboxlive.com/authenticate')> not mocked!

    /usr/lib/python3/dist-packages/respx/router.py:250: AllMockedAssertionError ___________________________ test_sisu_authorization ____________________________

    respx_mock = <respx.router.MockRouter object at 0x7f95890afe00>
    xal_mgr = <xbox.webapi.authentication.xal.XALManager object at 0x7f9587f6df30>

    @pytest.mark.asyncio
    async def test_sisu_authorization(respx_mock, xal_mgr):
    route = respx_mock.post("https://sisu.xboxlive.com/authorize").mock(
    return_value=Response(200, json=get_response_json("xal_authorization_resp"))
    )
    await xal_mgr.do_sisu_authorization(
    "SISU-Session-ID", "eyAccessToken", "eyDeviceToken"
    )

    tests/test_xal.py:48:
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbox/webapi/authentication/xal.py:255: in do_sisu_authorization
    resp = await self.session.send_signed( xbox/webapi/common/signed_session.py:52: in send_signed
    return await self.send(prepared) /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 0x7f95890afe00>
    request = <Request(b'POST', 'https://sisu.xboxlive.com/authorize')>

    @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', 'https://sisu.xboxlive.com/authorize')> not mocked!

    /usr/lib/python3/dist-packages/respx/router.py:250: AllMockedAssertionError _________________________ test_exchange_code_for_token _________________________

    respx_mock = <respx.router.MockRouter object at 0x7f95890afe00>
    xal_mgr = <xbox.webapi.authentication.xal.XALManager object at 0x7f958914ab10>

    @pytest.mark.asyncio
    async def test_exchange_code_for_token(respx_mock, xal_mgr):
    route = respx_mock.post("https://login.live.com").mock(
    return_value=Response(200, json=get_response_json("auth_oauth2_token"))
    )
    await xal_mgr.exchange_code_for_token("abc", "xyz")

    tests/test_xal.py:59:
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbox/webapi/authentication/xal.py:178: in exchange_code_for_token
    resp = await self.__oauth20_token_endpoint(post_body) xbox/webapi/authentication/xal.py:165: in __oauth20_token_endpoint
    return await self.session.post(url, headers=headers, data=json_body) /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 0x7f95890afe00>
    request = <Request(b'POST', 'https://login.live.com/oauth20_token.srf')>

    @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', 'https://login.live.com/oauth20_token.srf')> not mocked!

    /usr/lib/python3/dist-packages/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: auth_mgr 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: xal_mgr is asynchronous and explicitly requests the "event_loop" fixture. Asynchronous fixtures and test functions should use "asyncio.get_running_loop()" instead.
    warnings.warn(

    -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html =========================== short test summary info ============================
    FAILED tests/test_account.py::test_claim_gamertag - respx.models.AllMockedAss...
    FAILED tests/test_account.py::test_claim_gamertag_error - respx.models.AllMoc...
    FAILED tests/test_account.py::test_change_gamertag - respx.models.AllMockedAs...
    FAILED tests/test_account.py::test_change_gamertag_error - respx.models.AllMo...
    FAILED tests/test_achievements.py::test_achievement_360_all - respx.models.Al...
    FAILED tests/test_achievements.py::test_achievement_360_earned - respx.models...
    FAILED tests/test_achievements.py::test_achievement_360_recent_progress - res...
    FAILED tests/test_achievements.py::test_achievement_one_details - respx.model...
    FAILED tests/test_achievements.py::test_achievement_one_gameprogress - respx....
    FAILED tests/test_achievements.py::test_achievement_one_recent_progress - res...
    FAILED tests/test_auth.py::test_request_tokens - respx.models.AllMockedAssert...
    FAILED tests/test_auth.py::test_refresh_tokens - respx.models.AllMockedAssert...
    FAILED tests/test_auth.py::test_refresh_tokens_user_still_valid - respx.model...
    FAILED tests/test_catalog.py::test_get_products - respx.models.AllMockedAsser...
    FAILED tests/test_catalog.py::test_get_products_detail - respx.models.AllMock...
    FAILED tests/test_catalog.py::test_get_product_from_alternate_id - respx.mode...
    FAILED tests/test_catalog.py::test_get_product_from_alternate_id_legacy - res...
    FAILED tests/test_catalog.py::test_product_search - respx.models.AllMockedAss...
    FAILED tests/test_cqs.py::test_channel_list_download - respx.models.AllMocked...
    FAILED tests/test_cqs.py::test_schedule_download - respx.models.AllMockedAsse...
    FAILED tests/test_gameclips.py::test_gameclips_recent_xuid - respx.models.All...
    FAILED tests/test_gameclips.py::test_gameclips_recent_xuid_titleid_filter - r...
    FAILED tests/test_gameclips.py::test_gameclips_recent_own - respx.models.AllM...
    FAILED tests/test_gameclips.py::test_gameclips_recent_own_titleid_filter - re...
    FAILED tests/test_gameclips.py::test_gameclips_recent_community - respx.model...
    FAILED tests/test_gameclips.py::test_gameclips_saved_xuid - respx.models.AllM...
    FAILED tests/test_gameclips.py::test_gameclips_saved_xuid_titleid_filter - re...
    FAILED tests/test_gameclips.py::test_gameclips_saved_own - respx.models.AllMo...
    FAILED tests/test_gameclips.py::test_gameclips_saved_own_titleid_filter - res...
    FAILED tests/test_gameclips.py::test_gameclips_saved_community - respx.models...
    FAILED tests/test_lists.py::test_get_list - respx.models.AllMockedAssertionEr...
    FAILED tests/test_lists.py::test_list_add - respx.models.AllMockedAssertionEr...
    FAILED tests/test_lists.py::test_list_delete - respx.models.AllMockedAssertio...
    FAILED tests/test_mediahub.py::test_media_screenshots_own - respx.models.AllM...
    FAILED tests/test_mediahub.py::test_media_gameclips_own - respx.models.AllMoc...
    FAILED tests/test_message.py::test_get_inbox - respx.models.AllMockedAssertio...
    FAILED tests/test_message.py::test_get_conversation - respx.models.AllMockedA...
    FAILED tests/test_message.py::test_get_new_conversation - respx.models.AllMoc...
    FAILED tests/test_message.py::test_delete_conversation - respx.models.AllMock...
    FAILED tests/test_message.py::test_delete_message - respx.models.AllMockedAss...
    FAILED tests/test_message.py::test_send_message - respx.models.AllMockedAsser...
    FAILED tests/test_people.py::test_people_friends_own - respx.models.AllMocked...
    FAILED tests/test_people.py::test_people_friends_by_xuid - respx.models.AllMo...
    FAILED tests/test_people.py::test_profiles_batch - respx.models.AllMockedAsse...
    FAILED tests/test_people.py::test_people_recommendations - respx.models.AllMo...
    FAILED tests/test_people.py::test_people_summary_own - respx.models.AllMocked...
    FAILED tests/test_people.py::test_people_summary_by_xuid - respx.models.AllMo...
    FAILED tests/test_people.py::test_people_summary_by_gamertag - respx.models.A...
    FAILED tests/test_presence.py::test_presence - respx.models.AllMockedAssertio...
    FAILED tests/test_presence.py::test_presence_batch - respx.models.AllMockedAs...
    FAILED tests/test_presence.py::test_presence_own - respx.models.AllMockedAsse...
    FAILED tests/test_presence.py::test_presence_own_set - respx.models.AllMocked...
    FAILED tests/test_presence.py::test_presence_own_set_fail - respx.models.AllM...
    FAILED tests/test_profile.py::test_profile_by_xuid - respx.models.AllMockedAs...
    FAILED tests/test_profile.py::test_profile_by_gamertag - respx.models.AllMock...
    FAILED tests/test_profile.py::test_profiles_batch - respx.models.AllMockedAss...
    FAILED tests/test_screenshots.py::test_screenshots_recent_xuid - respx.models...
    FAILED tests/test_screenshots.py::test_screenshots_recent_xuid_titleid_filter FAILED tests/test_screenshots.py::test_screenshots_recent_own - respx.models....
    FAILED tests/test_screenshots.py::test_screenshots_recent_own_titleid_filter FAILED tests/test_screenshots.py::test_screenshots_recent_community - respx.m...
    FAILED tests/test_screenshots.py::test_screenshots_saved_xuid - respx.models....
    FAILED tests/test_screenshots.py::test_screenshots_saved_xuid_titleid_filter FAILED tests/test_screenshots.py::test_screenshots_saved_own - respx.models.A...
    FAILED tests/test_screenshots.py::test_screenshots_saved_own_titleid_filter FAILED tests/test_screenshots.py::test_screenshots_saved_community - respx.mo...
    FAILED tests/test_signed_session.py::test_sending_signed_request - respx.mode...
    FAILED tests/test_signed_session.py::test_sending_signed - respx.models.AllMo...
    FAILED tests/test_smartglass.py::test_get_console_list - respx.models.AllMock...
    FAILED tests/test_smartglass.py::test_get_installed_apps - respx.models.AllMo...
    FAILED tests/test_smartglass.py::test_get_storage_devices - respx.models.AllM...
    FAILED tests/test_smartglass.py::test_get_console_status - respx.models.AllMo...
    FAILED tests/test_smartglass.py::test_get_op_status - respx.models.AllMockedA...
    FAILED tests/test_smartglass.py::test_commands - respx.models.AllMockedAssert...
    FAILED tests/test_titlehub.py::test_titlehub_titlehistory - respx.models.AllM...
    FAILED tests/test_titlehub.py::test_titlehub_titleinfo - respx.models.AllMock...
    FAILED tests/test_titlehub.py::test_titlehub_batch - respx.models.AllMockedAs...
    FAILED tests/test_usersearch.py::test_profile_by_xuid - respx.models.AllMocke...
    FAILED tests/test_userstats.py::test_userstats_by_scid - respx.models.AllMock...
    FAILED tests/test_userstats.py::test_userstats_by_scid_with_metadata - respx....
    FAILED tests/test_userstats.py::test_userstats_batch - respx.models.AllMocked...
    FAILED tests/test_userstats.py::test_userstats_batch_by_scid - respx.models.A...
    FAILED tests/test_xal.py::test_get_title_endpoints - respx.models.AllMockedAs...
    FAILED tests/test_xal.py::test_get_device_token - respx.models.AllMockedAsser...
    FAILED tests/test_xal.py::test_sisu_authentication - respx.models.AllMockedAs...
    FAILED tests/test_xal.py::test_sisu_authorization - respx.models.AllMockedAss...
    FAILED tests/test_xal.py::test_exchange_code_for_token - respx.models.AllMock...
    =========== 87 failed, 12 passed, 1 deselected, 2 warnings in 6.28s ============
    E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_python-xbox-webapi/build; python3.13 -m pytest -v -k 'not test_import'
    dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.13 returned exit code 13
    make: *** [debian/rules:17: 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-xbox-webapi, 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)