--- Begin Message ---
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
--------------------------------------------------------------------------------
--- End Message ---