Package: src:python-aioresponses
Version: 0.7.6-3
Severity: serious
Tags: ftbfs forky sid
User: [email protected]
Usertags: aiohttp-3.14

Dear maintainer:

During a rebuild of all packages in unstable, this package failed to build.

Below you will find the last part of the build log (probably the most
relevant part, but not necessarily). If required, the full build log
is available here:

https://people.debian.org/~sanvila/build-logs/202606/

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 cannot 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-aioresponses, so that this is still
visible in the BTS web page for this package.

Thanks.

--------------------------------------------------------------------------------
[...]
 debian/rules clean
dh clean --buildsystem=pybuild
   dh_auto_clean -O--buildsystem=pybuild
I: pybuild base:385: python3.13 setup.py clean 
/usr/lib/python3/dist-packages/setuptools/dist.py:759: 
SetuptoolsDeprecationWarning: License classifiers are deprecated.
!!

        
********************************************************************************
        Please consider removing the following classifiers in favor of a SPDX 
license expression:

        License :: OSI Approved :: MIT License

        See 
https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license 
for details.

[... snipped ...]

        rsps.get(
            url,
            status=307,
            headers={"Location": "../baz"},
        )
        rsps.get(f"{base_url}/baz")
    
>       response = await self.session.get(url, allow_redirects=True)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/test_aioresponses.py:781: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
<string>:3: in _request
    ???
/usr/lib/python3.13/unittest/mock.py:2332: in _execute_mock_call
    result = await effect(*args, **kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
aioresponses/core.py:512: in _request_mock
    response = await self.match(method, url, **kwargs)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
aioresponses/core.py:456: in match
    response_or_exc = await matcher.build_response(
aioresponses/core.py:202: in build_response
    resp = self._build_response(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <aioresponses.core.RequestMatch object at 0x7f7ee209b650>
url = URL('https://httpbin.org/foo/bar'), method = 'get', request_headers = {}
status = 307, body = b'', content_type = 'application/json', payload = None
headers = {'Location': '../baz'}
response_class = <class 'aiohttp.client_reqrep.ClientResponse'>
reason = 'Temporary Redirect'

    def _build_response(self, url: 'Union[URL, str]',
                        method: str = hdrs.METH_GET,
                        request_headers: Optional[Dict] = None,
                        status: int = 200,
                        body: Union[str, bytes] = '',
                        content_type: str = 'application/json',
                        payload: Optional[Dict] = None,
                        headers: Optional[Dict] = None,
                        response_class: Optional[Type[ClientResponse]] = None,
                        reason: Optional[str] = None) -> ClientResponse:
        if response_class is None:
            response_class = ClientResponse
        if payload is not None:
            body = json.dumps(payload)
        if not isinstance(body, bytes):
            body = str.encode(body)
        if request_headers is None:
            request_headers = {}
        loop = Mock()
        loop.get_debug = Mock()
        loop.get_debug.return_value = True
        kwargs = {}  # type: Dict[str, Any]
        kwargs['request_info'] = RequestInfo(
            url=url,
            method=method,
            headers=CIMultiDictProxy(CIMultiDict(**request_headers)),
        )
        kwargs['writer'] = None
        kwargs['continue100'] = None
        kwargs['timer'] = TimerNoop()
        kwargs['traces'] = []
        kwargs['loop'] = loop
        kwargs['session'] = None
    
        # We need to initialize headers manually
        _headers = CIMultiDict({hdrs.CONTENT_TYPE: content_type})
        if headers:
            _headers.update(headers)
        raw_headers = self._build_raw_headers(_headers)
>       resp = response_class(method, url, **kwargs)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E       TypeError: ClientResponse.__init__() missing 1 required keyword-only 
argument: 'stream_writer'

aioresponses/core.py:171: TypeError
__________________ AIOResponseRedirectTest.test_request_info ___________________

self = <tests.test_aioresponses.AIOResponseRedirectTest 
testMethod=test_request_info>
rsps = <aioresponses.core.aioresponses object at 0x7f7ee1f71b00>

    @aioresponses()
    async def test_request_info(self, rsps):
        rsps.get(self.url, status=200)
    
>       response = await self.session.get(self.url)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/test_aioresponses.py:753: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
<string>:3: in _request
    ???
/usr/lib/python3.13/unittest/mock.py:2332: in _execute_mock_call
    result = await effect(*args, **kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
aioresponses/core.py:512: in _request_mock
    response = await self.match(method, url, **kwargs)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
aioresponses/core.py:456: in match
    response_or_exc = await matcher.build_response(
aioresponses/core.py:202: in build_response
    resp = self._build_response(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <aioresponses.core.RequestMatch object at 0x7f7ee25e2ed0>
url = URL('http://10.1.1.1:8080/redirect'), method = 'get', request_headers = {}
status = 200, body = b'', content_type = 'application/json', payload = None
headers = None, response_class = <class 'aiohttp.client_reqrep.ClientResponse'>
reason = 'OK'

    def _build_response(self, url: 'Union[URL, str]',
                        method: str = hdrs.METH_GET,
                        request_headers: Optional[Dict] = None,
                        status: int = 200,
                        body: Union[str, bytes] = '',
                        content_type: str = 'application/json',
                        payload: Optional[Dict] = None,
                        headers: Optional[Dict] = None,
                        response_class: Optional[Type[ClientResponse]] = None,
                        reason: Optional[str] = None) -> ClientResponse:
        if response_class is None:
            response_class = ClientResponse
        if payload is not None:
            body = json.dumps(payload)
        if not isinstance(body, bytes):
            body = str.encode(body)
        if request_headers is None:
            request_headers = {}
        loop = Mock()
        loop.get_debug = Mock()
        loop.get_debug.return_value = True
        kwargs = {}  # type: Dict[str, Any]
        kwargs['request_info'] = RequestInfo(
            url=url,
            method=method,
            headers=CIMultiDictProxy(CIMultiDict(**request_headers)),
        )
        kwargs['writer'] = None
        kwargs['continue100'] = None
        kwargs['timer'] = TimerNoop()
        kwargs['traces'] = []
        kwargs['loop'] = loop
        kwargs['session'] = None
    
        # We need to initialize headers manually
        _headers = CIMultiDict({hdrs.CONTENT_TYPE: content_type})
        if headers:
            _headers.update(headers)
        raw_headers = self._build_raw_headers(_headers)
>       resp = response_class(method, url, **kwargs)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E       TypeError: ClientResponse.__init__() missing 1 required keyword-only 
argument: 'stream_writer'

aioresponses/core.py:171: TypeError
___ AIOResponseRedirectTest.test_request_info_with_original_request_headers ____

self = <tests.test_aioresponses.AIOResponseRedirectTest 
testMethod=test_request_info_with_original_request_headers>
rsps = <aioresponses.core.aioresponses object at 0x7f7ee1f71b70>

    @aioresponses()
    async def test_request_info_with_original_request_headers(self, rsps):
        headers = {"Authorization": "Bearer access-token"}
        rsps.get(self.url, status=200)
    
>       response = await self.session.get(self.url, headers=headers)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/test_aioresponses.py:764: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
<string>:3: in _request
    ???
/usr/lib/python3.13/unittest/mock.py:2332: in _execute_mock_call
    result = await effect(*args, **kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
aioresponses/core.py:512: in _request_mock
    response = await self.match(method, url, **kwargs)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
aioresponses/core.py:456: in match
    response_or_exc = await matcher.build_response(
aioresponses/core.py:202: in build_response
    resp = self._build_response(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <aioresponses.core.RequestMatch object at 0x7f7ee209b590>
url = URL('http://10.1.1.1:8080/redirect'), method = 'get'
request_headers = {'Authorization': 'Bearer access-token'}, status = 200
body = b'', content_type = 'application/json', payload = None, headers = None
response_class = <class 'aiohttp.client_reqrep.ClientResponse'>, reason = 'OK'

    def _build_response(self, url: 'Union[URL, str]',
                        method: str = hdrs.METH_GET,
                        request_headers: Optional[Dict] = None,
                        status: int = 200,
                        body: Union[str, bytes] = '',
                        content_type: str = 'application/json',
                        payload: Optional[Dict] = None,
                        headers: Optional[Dict] = None,
                        response_class: Optional[Type[ClientResponse]] = None,
                        reason: Optional[str] = None) -> ClientResponse:
        if response_class is None:
            response_class = ClientResponse
        if payload is not None:
            body = json.dumps(payload)
        if not isinstance(body, bytes):
            body = str.encode(body)
        if request_headers is None:
            request_headers = {}
        loop = Mock()
        loop.get_debug = Mock()
        loop.get_debug.return_value = True
        kwargs = {}  # type: Dict[str, Any]
        kwargs['request_info'] = RequestInfo(
            url=url,
            method=method,
            headers=CIMultiDictProxy(CIMultiDict(**request_headers)),
        )
        kwargs['writer'] = None
        kwargs['continue100'] = None
        kwargs['timer'] = TimerNoop()
        kwargs['traces'] = []
        kwargs['loop'] = loop
        kwargs['session'] = None
    
        # We need to initialize headers manually
        _headers = CIMultiDict({hdrs.CONTENT_TYPE: content_type})
        if headers:
            _headers.update(headers)
        raw_headers = self._build_raw_headers(_headers)
>       resp = response_class(method, url, **kwargs)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E       TypeError: ClientResponse.__init__() missing 1 required keyword-only 
argument: 'stream_writer'

aioresponses/core.py:171: TypeError
=========================== short test summary info ============================
FAILED tests/test_aioresponses.py::AIOResponsesTestCase::test_assert_any_call
FAILED 
tests/test_aioresponses.py::AIOResponsesTestCase::test_assert_any_call_not_called
FAILED tests/test_aioresponses.py::AIOResponsesTestCase::test_assert_called
FAILED 
tests/test_aioresponses.py::AIOResponsesTestCase::test_assert_called_twice
FAILED tests/test_aioresponses.py::AIOResponsesTestCase::test_assert_not_called
FAILED tests/test_aioresponses.py::AIOResponsesTestCase::test_binary_body - T...
FAILED 
tests/test_aioresponses.py::AIOResponsesTestCase::test_binary_body_via_callback
FAILED tests/test_aioresponses.py::AIOResponsesTestCase::test_callback - Type...
FAILED tests/test_aioresponses.py::AIOResponsesTestCase::test_callback_coroutine
FAILED 
tests/test_aioresponses.py::AIOResponsesTestCase::test_custom_response_class
FAILED 
tests/test_aioresponses.py::AIOResponsesTestCase::test_exceptions_in_the_middle_of_responses
FAILED 
tests/test_aioresponses.py::AIOResponsesTestCase::test_mocking_as_context_manager
FAILED 
tests/test_aioresponses.py::AIOResponsesTestCase::test_mocking_as_decorator
FAILED tests/test_aioresponses.py::AIOResponsesTestCase::test_multiple_requests
FAILED tests/test_aioresponses.py::AIOResponsesTestCase::test_passing_argument
FAILED 
tests/test_aioresponses.py::AIOResponsesTestCase::test_possible_race_condition
FAILED tests/test_aioresponses.py::AIOResponsesTestCase::test_post_with_data
FAILED tests/test_aioresponses.py::AIOResponsesTestCase::test_raise_for_status
FAILED 
tests/test_aioresponses.py::AIOResponsesTestCase::test_request_raise_for_status
FAILED 
tests/test_aioresponses.py::AIOResponsesTestCase::test_request_should_match_regexp
FAILED 
tests/test_aioresponses.py::AIOResponsesTestCase::test_request_with_non_deepcopyable_parameter
FAILED tests/test_aioresponses.py::AIOResponsesTestCase::test_returned_instance
FAILED 
tests/test_aioresponses.py::AIOResponsesTestCase::test_returned_instance_and_params_handling
FAILED 
tests/test_aioresponses.py::AIOResponsesTestCase::test_returned_instance_and_status_code
FAILED 
tests/test_aioresponses.py::AIOResponsesTestCase::test_returned_response_cookies
FAILED 
tests/test_aioresponses.py::AIOResponsesTestCase::test_returned_response_headers
FAILED 
tests/test_aioresponses.py::AIOResponsesTestCase::test_returned_response_raw_headers
FAILED tests/test_aioresponses.py::AIOResponsesTestCase::test_streaming - Typ...
FAILED tests/test_aioresponses.py::AIOResponsesTestCase::test_streaming_up_to
FAILED 
tests/test_aioresponses.py::AIOResponsesRaiseForStatusSessionTestCase::test_do_not_raise_for_status
FAILED 
tests/test_aioresponses.py::AIOResponsesRaiseForStatusSessionTestCase::test_raise_for_status
FAILED 
tests/test_aioresponses.py::AIOResponseRedirectTest::test_post_redirect_followed
FAILED 
tests/test_aioresponses.py::AIOResponseRedirectTest::test_redirect_followed
FAILED 
tests/test_aioresponses.py::AIOResponseRedirectTest::test_redirect_missing_location_header
FAILED 
tests/test_aioresponses.py::AIOResponseRedirectTest::test_redirect_missing_mocked_match
FAILED 
tests/test_aioresponses.py::AIOResponseRedirectTest::test_relative_url_redirect_followed
FAILED tests/test_aioresponses.py::AIOResponseRedirectTest::test_request_info
FAILED 
tests/test_aioresponses.py::AIOResponseRedirectTest::test_request_info_with_original_request_headers
=================== 38 failed, 24 passed, 2 skipped in 2.09s ===================
E: pybuild pybuild:485: test: plugin distutils failed with: exit code=1: cd 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build; python3.13 -m pytest tests
dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.13 
--parallel=2 returned exit code 13
make: *** [debian/rules:12: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess failed with exit 
status 2
--------------------------------------------------------------------------------

Reply via email to