--- Begin Message ---
Source: smart-open
Version: 5.2.1-6
Severity: serious
Justification: FTBFS
Tags: trixie sid ftbfs
User: lu...@debian.org
Usertags: ftbfs-20240615 ftbfs-trixie
Hi,
During a rebuild of all packages in sid, your package failed to build
on amd64.
Relevant part (hopefully):
> make[1]: Entering directory '/<<PKGBUILDDIR>>'
> rm -f smart_open/gcs.py
> rm -f smart_open/tests/test_gcs.py
> make[1]: Leaving directory '/<<PKGBUILDDIR>>'
> dh_auto_configure -O--buildsystem=pybuild
> I: pybuild base:311: python3.12 setup.py config
> running config
> I: pybuild base:311: python3.11 setup.py config
> running config
> dh_auto_build -O--buildsystem=pybuild
> I: pybuild base:311: /usr/bin/python3.12 setup.py build
> running build
> running build_py
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_smart-open/build/smart_open
> copying smart_open/utils.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_smart-open/build/smart_open
> copying smart_open/__init__.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_smart-open/build/smart_open
> copying smart_open/transport.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_smart-open/build/smart_open
> copying smart_open/bytebuffer.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_smart-open/build/smart_open
> copying smart_open/version.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_smart-open/build/smart_open
> copying smart_open/s3.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_smart-open/build/smart_open
> copying smart_open/local_file.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_smart-open/build/smart_open
> copying smart_open/smart_open_lib.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_smart-open/build/smart_open
> copying smart_open/webhdfs.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_smart-open/build/smart_open
> copying smart_open/constants.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_smart-open/build/smart_open
> copying smart_open/doctools.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_smart-open/build/smart_open
> copying smart_open/concurrency.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_smart-open/build/smart_open
> copying smart_open/azure.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_smart-open/build/smart_open
> copying smart_open/compression.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_smart-open/build/smart_open
> copying smart_open/ssh.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_smart-open/build/smart_open
> copying smart_open/hdfs.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_smart-open/build/smart_open
> copying smart_open/http.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_smart-open/build/smart_open
> I: pybuild base:311: /usr/bin/python3 setup.py build
> running build
> running build_py
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_smart-open/build/smart_open
> copying smart_open/utils.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_smart-open/build/smart_open
> copying smart_open/__init__.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_smart-open/build/smart_open
> copying smart_open/transport.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_smart-open/build/smart_open
> copying smart_open/bytebuffer.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_smart-open/build/smart_open
> copying smart_open/version.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_smart-open/build/smart_open
> copying smart_open/s3.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_smart-open/build/smart_open
> copying smart_open/local_file.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_smart-open/build/smart_open
> copying smart_open/smart_open_lib.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_smart-open/build/smart_open
> copying smart_open/webhdfs.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_smart-open/build/smart_open
> copying smart_open/constants.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_smart-open/build/smart_open
> copying smart_open/doctools.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_smart-open/build/smart_open
> copying smart_open/concurrency.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_smart-open/build/smart_open
> copying smart_open/azure.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_smart-open/build/smart_open
> copying smart_open/compression.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_smart-open/build/smart_open
> copying smart_open/ssh.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_smart-open/build/smart_open
> copying smart_open/hdfs.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_smart-open/build/smart_open
> copying smart_open/http.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_smart-open/build/smart_open
> dh_auto_test -O--buildsystem=pybuild
> I: pybuild pybuild:308: cp -a smart_open/tests
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_smart-open/build/smart_open
> I: pybuild base:311: cd
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_smart-open/build; python3.12 -m
> pytest smart_open/tests
> ============================= test session starts
> ==============================
> platform linux -- Python 3.12.4, pytest-8.2.2, pluggy-1.5.0
> rootdir: /<<PKGBUILDDIR>>
> configfile: tox.ini
> collected 306 items
>
> smart_open/tests/test_azure.py ....................................... [
> 12%]
> smart_open/tests/test_bytebuffer.py ............... [
> 17%]
> smart_open/tests/test_hdfs.py ........ [
> 20%]
> smart_open/tests/test_http.py ..F...FFF... [
> 24%]
> smart_open/tests/test_package.py sss [
> 25%]
> smart_open/tests/test_s3.py s..sssssssssssssssssssssssssssssssssssssssss [
> 39%]
> sssssssssssss..sss [
> 45%]
> smart_open/tests/test_s3_version.py sssssss [
> 47%]
> smart_open/tests/test_smart_open.py .................................... [
> 59%]
> ...................................ssssssssssssssss....sssss............ [
> 83%]
> .s.s.ss.......sssss..ss.ssss.. [
> 92%]
> smart_open/tests/test_ssh.py ..... [
> 94%]
> smart_open/tests/test_transport.py ... [
> 95%]
> smart_open/tests/test_utils.py ..............
> [100%]
>
> =================================== FAILURES
> ===================================
> _______________________ HttpTest.test_https_seek_forward
> _______________________
>
> self = <urllib3.response.HTTPResponse object at 0x7f83bb2fd030>
>
> @contextmanager
> def _error_catcher(self) -> typing.Generator[None, None, None]:
> """
> Catch low-level python exceptions, instead re-raising urllib3
> variants, so that low-level exceptions are not leaked in the
> high-level api.
>
> On exit, release the connection back to the pool.
> """
> clean_exit = False
>
> try:
> try:
> > yield
>
> clean_exit = False
> self = <urllib3.response.HTTPResponse object at 0x7f83bb2fd030>
>
> /usr/lib/python3/dist-packages/urllib3/response.py:710:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> self = <urllib3.response.HTTPResponse object at 0x7f83bb2fd030>, amt = 131072
>
> def _raw_read(
> self,
> amt: int | None = None,
> ) -> bytes:
> """
> Reads `amt` of bytes from the socket.
> """
> if self._fp is None:
> return None # type: ignore[return-value]
>
> fp_closed = getattr(self._fp, "closed", False)
>
> with self._error_catcher():
> data = self._fp_read(amt) if not fp_closed else b""
> if amt is not None and amt != 0 and not data:
> # Platform-specific: Buggy versions of Python.
> # Close the connection when no data is returned
> #
> # This is redundant to what httplib/http.client _should_
> # already do. However, versions of python released before
> # December 15, 2012 (http://bugs.python.org/issue16298) do
> # not properly close the connection in all cases. There is
> # no harm in redundantly calling close.
> self._fp.close()
> if (
> self.enforce_content_length
> and self.length_remaining is not None
> and self.length_remaining != 0
> ):
> # This is an edge case that httplib failed to cover due
> # to concerns of backward compatibility. We're
> # addressing it here to make sure IncompleteRead is
> # raised during streaming, so all calls with incorrect
> # Content-Length are caught.
> > raise IncompleteRead(self._fp_bytes_read,
> > self.length_remaining)
> E urllib3.exceptions.IncompleteRead: IncompleteRead(58
> bytes read, 10 more expected)
>
> amt = 131072
> data = b''
> fp_closed = False
> self = <urllib3.response.HTTPResponse object at 0x7f83bb2fd030>
>
> /usr/lib/python3/dist-packages/urllib3/response.py:835: IncompleteRead
>
> The above exception was the direct cause of the following exception:
>
> def generate():
> # Special case for urllib3.
> if hasattr(self.raw, "stream"):
> try:
> > yield from self.raw.stream(chunk_size, decode_content=True)
>
> chunk_size = 131072
> self = <Response [200]>
>
> /usr/lib/python3/dist-packages/requests/models.py:820:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
> /usr/lib/python3/dist-packages/urllib3/response.py:936: in stream
> data = self.read(amt=amt, decode_content=decode_content)
> amt = 131072
> decode_content = True
> self = <urllib3.response.HTTPResponse object at 0x7f83bb2fd030>
> /usr/lib/python3/dist-packages/urllib3/response.py:907: in read
> data = self._raw_read(amt)
> amt = 131072
> cache_content = False
> data = b" hard and got so far but in the end it doesn't even
> matter"
> decode_content = True
> decoded_data = b" hard and got so far but in the end it doesn't even
> matter"
> flush_decoder = False
> self = <urllib3.response.HTTPResponse object at 0x7f83bb2fd030>
> /usr/lib/python3/dist-packages/urllib3/response.py:813: in _raw_read
> with self._error_catcher():
> amt = 131072
> data = b''
> fp_closed = False
> self = <urllib3.response.HTTPResponse object at 0x7f83bb2fd030>
> /usr/lib/python3.12/contextlib.py:158: in __exit__
> self.gen.throw(value)
> self = <contextlib._GeneratorContextManager object at
> 0x7f83bb2fd640>
> traceback = <traceback object at 0x7f83bae6a200>
> typ = <class 'urllib3.exceptions.IncompleteRead'>
> value = IncompleteRead(58 bytes read, 10 more expected)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> self = <urllib3.response.HTTPResponse object at 0x7f83bb2fd030>
>
> @contextmanager
> def _error_catcher(self) -> typing.Generator[None, None, None]:
> """
> Catch low-level python exceptions, instead re-raising urllib3
> variants, so that low-level exceptions are not leaked in the
> high-level api.
>
> On exit, release the connection back to the pool.
> """
> clean_exit = False
>
> try:
> try:
> yield
>
> except SocketTimeout as e:
> # FIXME: Ideally we'd like to include the url in the
> ReadTimeoutError but
> # there is yet no clean way to get at it from this context.
> raise ReadTimeoutError(self._pool, None, "Read timed out.")
> from e # type: ignore[arg-type]
>
> except BaseSSLError as e:
> # FIXME: Is there a better way to differentiate between
> SSLErrors?
> if "read operation timed out" not in str(e):
> # SSL errors related to framing/MAC get wrapped and
> reraised here
> raise SSLError(e) from e
>
> raise ReadTimeoutError(self._pool, None, "Read timed out.")
> from e # type: ignore[arg-type]
>
> except (HTTPException, OSError) as e:
> # This includes IncompleteRead.
> > raise ProtocolError(f"Connection broken: {e!r}", e) from e
> E urllib3.exceptions.ProtocolError: ('Connection broken:
> IncompleteRead(58 bytes read, 10 more expected)', IncompleteRead(58 bytes
> read, 10 more expected))
>
> clean_exit = False
> self = <urllib3.response.HTTPResponse object at 0x7f83bb2fd030>
>
> /usr/lib/python3/dist-packages/urllib3/response.py:727: ProtocolError
>
> During handling of the above exception, another exception occurred:
>
> self = <smart_open.tests.test_http.HttpTest
> testMethod=test_https_seek_forward>
>
> @responses.activate
> def test_https_seek_forward(self):
> """Did the seek forward over HTTPS work?"""
> responses.add_callback(responses.GET, HTTPS_URL,
> callback=request_callback)
>
> with smart_open.open(HTTPS_URL, "rb") as fin:
> fin.seek(10)
> > read_bytes = fin.read(size=10)
>
> fin = <smart_open.http.SeekableBufferedInputBase object at
> 0x7f83bb2fd210>
> self = <smart_open.tests.test_http.HttpTest
> testMethod=test_https_seek_forward>
>
> smart_open/tests/test_http.py:142:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
> smart_open/http.py:175: in read
> bytes_read = self._read_buffer.fill(self._read_iter)
> self = <smart_open.http.SeekableBufferedInputBase object at
> 0x7f83bb2fd210>
> size = 10
> smart_open/bytebuffer.py:155: in fill
> for more_bytes in source:
> new_bytes = b''
> self = <smart_open.bytebuffer.ByteBuffer object at
> 0x7f83bb2fca40>
> size = 131072
> source = <generator object
> Response.iter_content.<locals>.generate at 0x7f83bae20900>
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> def generate():
> # Special case for urllib3.
> if hasattr(self.raw, "stream"):
> try:
> yield from self.raw.stream(chunk_size, decode_content=True)
> except ProtocolError as e:
> > raise ChunkedEncodingError(e)
> E requests.exceptions.ChunkedEncodingError: ('Connection
> broken: IncompleteRead(58 bytes read, 10 more expected)', IncompleteRead(58
> bytes read, 10 more expected))
>
> chunk_size = 131072
> self = <Response [200]>
>
> /usr/lib/python3/dist-packages/requests/models.py:822: ChunkedEncodingError
> _______________________ HttpTest.test_seek_from_current
> ________________________
>
> self = <urllib3.response.HTTPResponse object at 0x7f83bb2fded0>
>
> @contextmanager
> def _error_catcher(self) -> typing.Generator[None, None, None]:
> """
> Catch low-level python exceptions, instead re-raising urllib3
> variants, so that low-level exceptions are not leaked in the
> high-level api.
>
> On exit, release the connection back to the pool.
> """
> clean_exit = False
>
> try:
> try:
> > yield
>
> clean_exit = False
> self = <urllib3.response.HTTPResponse object at 0x7f83bb2fded0>
>
> /usr/lib/python3/dist-packages/urllib3/response.py:710:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> self = <urllib3.response.HTTPResponse object at 0x7f83bb2fded0>, amt = 131072
>
> def _raw_read(
> self,
> amt: int | None = None,
> ) -> bytes:
> """
> Reads `amt` of bytes from the socket.
> """
> if self._fp is None:
> return None # type: ignore[return-value]
>
> fp_closed = getattr(self._fp, "closed", False)
>
> with self._error_catcher():
> data = self._fp_read(amt) if not fp_closed else b""
> if amt is not None and amt != 0 and not data:
> # Platform-specific: Buggy versions of Python.
> # Close the connection when no data is returned
> #
> # This is redundant to what httplib/http.client _should_
> # already do. However, versions of python released before
> # December 15, 2012 (http://bugs.python.org/issue16298) do
> # not properly close the connection in all cases. There is
> # no harm in redundantly calling close.
> self._fp.close()
> if (
> self.enforce_content_length
> and self.length_remaining is not None
> and self.length_remaining != 0
> ):
> # This is an edge case that httplib failed to cover due
> # to concerns of backward compatibility. We're
> # addressing it here to make sure IncompleteRead is
> # raised during streaming, so all calls with incorrect
> # Content-Length are caught.
> > raise IncompleteRead(self._fp_bytes_read,
> > self.length_remaining)
> E urllib3.exceptions.IncompleteRead: IncompleteRead(58
> bytes read, 10 more expected)
>
> amt = 131072
> data = b''
> fp_closed = False
> self = <urllib3.response.HTTPResponse object at 0x7f83bb2fded0>
>
> /usr/lib/python3/dist-packages/urllib3/response.py:835: IncompleteRead
>
> The above exception was the direct cause of the following exception:
>
> def generate():
> # Special case for urllib3.
> if hasattr(self.raw, "stream"):
> try:
> > yield from self.raw.stream(chunk_size, decode_content=True)
>
> chunk_size = 131072
> self = <Response [200]>
>
> /usr/lib/python3/dist-packages/requests/models.py:820:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
> /usr/lib/python3/dist-packages/urllib3/response.py:936: in stream
> data = self.read(amt=amt, decode_content=decode_content)
> amt = 131072
> decode_content = True
> self = <urllib3.response.HTTPResponse object at 0x7f83bb2fded0>
> /usr/lib/python3/dist-packages/urllib3/response.py:907: in read
> data = self._raw_read(amt)
> amt = 131072
> cache_content = False
> data = b" hard and got so far but in the end it doesn't even
> matter"
> decode_content = True
> decoded_data = b" hard and got so far but in the end it doesn't even
> matter"
> flush_decoder = False
> self = <urllib3.response.HTTPResponse object at 0x7f83bb2fded0>
> /usr/lib/python3/dist-packages/urllib3/response.py:813: in _raw_read
> with self._error_catcher():
> amt = 131072
> data = b''
> fp_closed = False
> self = <urllib3.response.HTTPResponse object at 0x7f83bb2fded0>
> /usr/lib/python3.12/contextlib.py:158: in __exit__
> self.gen.throw(value)
> self = <contextlib._GeneratorContextManager object at
> 0x7f83bb2ffe90>
> traceback = <traceback object at 0x7f83baf46680>
> typ = <class 'urllib3.exceptions.IncompleteRead'>
> value = IncompleteRead(58 bytes read, 10 more expected)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> self = <urllib3.response.HTTPResponse object at 0x7f83bb2fded0>
>
> @contextmanager
> def _error_catcher(self) -> typing.Generator[None, None, None]:
> """
> Catch low-level python exceptions, instead re-raising urllib3
> variants, so that low-level exceptions are not leaked in the
> high-level api.
>
> On exit, release the connection back to the pool.
> """
> clean_exit = False
>
> try:
> try:
> yield
>
> except SocketTimeout as e:
> # FIXME: Ideally we'd like to include the url in the
> ReadTimeoutError but
> # there is yet no clean way to get at it from this context.
> raise ReadTimeoutError(self._pool, None, "Read timed out.")
> from e # type: ignore[arg-type]
>
> except BaseSSLError as e:
> # FIXME: Is there a better way to differentiate between
> SSLErrors?
> if "read operation timed out" not in str(e):
> # SSL errors related to framing/MAC get wrapped and
> reraised here
> raise SSLError(e) from e
>
> raise ReadTimeoutError(self._pool, None, "Read timed out.")
> from e # type: ignore[arg-type]
>
> except (HTTPException, OSError) as e:
> # This includes IncompleteRead.
> > raise ProtocolError(f"Connection broken: {e!r}", e) from e
> E urllib3.exceptions.ProtocolError: ('Connection broken:
> IncompleteRead(58 bytes read, 10 more expected)', IncompleteRead(58 bytes
> read, 10 more expected))
>
> clean_exit = False
> self = <urllib3.response.HTTPResponse object at 0x7f83bb2fded0>
>
> /usr/lib/python3/dist-packages/urllib3/response.py:727: ProtocolError
>
> During handling of the above exception, another exception occurred:
>
> self = <smart_open.tests.test_http.HttpTest testMethod=test_seek_from_current>
>
> @responses.activate
> def test_seek_from_current(self):
> responses.add_callback(responses.GET, URL, callback=request_callback)
> reader = smart_open.http.SeekableBufferedInputBase(URL)
>
> reader.seek(10)
> > read_bytes = reader.read(size=10)
>
> reader = <smart_open.http.SeekableBufferedInputBase object at
> 0x7f83bb2ff100>
> self = <smart_open.tests.test_http.HttpTest
> testMethod=test_seek_from_current>
>
> smart_open/tests/test_http.py:79:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
> smart_open/http.py:175: in read
> bytes_read = self._read_buffer.fill(self._read_iter)
> self = <smart_open.http.SeekableBufferedInputBase object at
> 0x7f83bb2ff100>
> size = 10
> smart_open/bytebuffer.py:155: in fill
> for more_bytes in source:
> new_bytes = b''
> self = <smart_open.bytebuffer.ByteBuffer object at
> 0x7f83bb2ff4d0>
> size = 131072
> source = <generator object
> Response.iter_content.<locals>.generate at 0x7f83bae219a0>
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> def generate():
> # Special case for urllib3.
> if hasattr(self.raw, "stream"):
> try:
> yield from self.raw.stream(chunk_size, decode_content=True)
> except ProtocolError as e:
> > raise ChunkedEncodingError(e)
> E requests.exceptions.ChunkedEncodingError: ('Connection
> broken: IncompleteRead(58 bytes read, 10 more expected)', IncompleteRead(58
> bytes read, 10 more expected))
>
> chunk_size = 131072
> self = <Response [200]>
>
> /usr/lib/python3/dist-packages/requests/models.py:822: ChunkedEncodingError
> _________________________ HttpTest.test_seek_from_end
> __________________________
>
> self = <urllib3.response.HTTPResponse object at 0x7f83bb288fa0>
>
> @contextmanager
> def _error_catcher(self) -> typing.Generator[None, None, None]:
> """
> Catch low-level python exceptions, instead re-raising urllib3
> variants, so that low-level exceptions are not leaked in the
> high-level api.
>
> On exit, release the connection back to the pool.
> """
> clean_exit = False
>
> try:
> try:
> > yield
>
> clean_exit = False
> self = <urllib3.response.HTTPResponse object at 0x7f83bb288fa0>
>
> /usr/lib/python3/dist-packages/urllib3/response.py:710:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> self = <urllib3.response.HTTPResponse object at 0x7f83bb288fa0>, amt = 131072
>
> def _raw_read(
> self,
> amt: int | None = None,
> ) -> bytes:
> """
> Reads `amt` of bytes from the socket.
> """
> if self._fp is None:
> return None # type: ignore[return-value]
>
> fp_closed = getattr(self._fp, "closed", False)
>
> with self._error_catcher():
> data = self._fp_read(amt) if not fp_closed else b""
> if amt is not None and amt != 0 and not data:
> # Platform-specific: Buggy versions of Python.
> # Close the connection when no data is returned
> #
> # This is redundant to what httplib/http.client _should_
> # already do. However, versions of python released before
> # December 15, 2012 (http://bugs.python.org/issue16298) do
> # not properly close the connection in all cases. There is
> # no harm in redundantly calling close.
> self._fp.close()
> if (
> self.enforce_content_length
> and self.length_remaining is not None
> and self.length_remaining != 0
> ):
> # This is an edge case that httplib failed to cover due
> # to concerns of backward compatibility. We're
> # addressing it here to make sure IncompleteRead is
> # raised during streaming, so all calls with incorrect
> # Content-Length are caught.
> > raise IncompleteRead(self._fp_bytes_read,
> > self.length_remaining)
> E urllib3.exceptions.IncompleteRead: IncompleteRead(10
> bytes read, 58 more expected)
>
> amt = 131072
> data = b''
> fp_closed = False
> self = <urllib3.response.HTTPResponse object at 0x7f83bb288fa0>
>
> /usr/lib/python3/dist-packages/urllib3/response.py:835: IncompleteRead
>
> The above exception was the direct cause of the following exception:
>
> def generate():
> # Special case for urllib3.
> if hasattr(self.raw, "stream"):
> try:
> > yield from self.raw.stream(chunk_size, decode_content=True)
>
> chunk_size = 131072
> self = <Response [200]>
>
> /usr/lib/python3/dist-packages/requests/models.py:820:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
> /usr/lib/python3/dist-packages/urllib3/response.py:936: in stream
> data = self.read(amt=amt, decode_content=decode_content)
> amt = 131072
> decode_content = True
> self = <urllib3.response.HTTPResponse object at 0x7f83bb288fa0>
> /usr/lib/python3/dist-packages/urllib3/response.py:907: in read
> data = self._raw_read(amt)
> amt = 131072
> cache_content = False
> data = b'ven matter'
> decode_content = True
> decoded_data = b'ven matter'
> flush_decoder = False
> self = <urllib3.response.HTTPResponse object at 0x7f83bb288fa0>
> /usr/lib/python3/dist-packages/urllib3/response.py:813: in _raw_read
> with self._error_catcher():
> amt = 131072
> data = b''
> fp_closed = False
> self = <urllib3.response.HTTPResponse object at 0x7f83bb288fa0>
> /usr/lib/python3.12/contextlib.py:158: in __exit__
> self.gen.throw(value)
> self = <contextlib._GeneratorContextManager object at
> 0x7f83bb2ffdd0>
> traceback = <traceback object at 0x7f83baf0b580>
> typ = <class 'urllib3.exceptions.IncompleteRead'>
> value = IncompleteRead(10 bytes read, 58 more expected)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> self = <urllib3.response.HTTPResponse object at 0x7f83bb288fa0>
>
> @contextmanager
> def _error_catcher(self) -> typing.Generator[None, None, None]:
> """
> Catch low-level python exceptions, instead re-raising urllib3
> variants, so that low-level exceptions are not leaked in the
> high-level api.
>
> On exit, release the connection back to the pool.
> """
> clean_exit = False
>
> try:
> try:
> yield
>
> except SocketTimeout as e:
> # FIXME: Ideally we'd like to include the url in the
> ReadTimeoutError but
> # there is yet no clean way to get at it from this context.
> raise ReadTimeoutError(self._pool, None, "Read timed out.")
> from e # type: ignore[arg-type]
>
> except BaseSSLError as e:
> # FIXME: Is there a better way to differentiate between
> SSLErrors?
> if "read operation timed out" not in str(e):
> # SSL errors related to framing/MAC get wrapped and
> reraised here
> raise SSLError(e) from e
>
> raise ReadTimeoutError(self._pool, None, "Read timed out.")
> from e # type: ignore[arg-type]
>
> except (HTTPException, OSError) as e:
> # This includes IncompleteRead.
> > raise ProtocolError(f"Connection broken: {e!r}", e) from e
> E urllib3.exceptions.ProtocolError: ('Connection broken:
> IncompleteRead(10 bytes read, 58 more expected)', IncompleteRead(10 bytes
> read, 58 more expected))
>
> clean_exit = False
> self = <urllib3.response.HTTPResponse object at 0x7f83bb288fa0>
>
> /usr/lib/python3/dist-packages/urllib3/response.py:727: ProtocolError
>
> During handling of the above exception, another exception occurred:
>
> self = <smart_open.tests.test_http.HttpTest testMethod=test_seek_from_end>
>
> @responses.activate
> def test_seek_from_end(self):
> responses.add_callback(responses.GET, URL, callback=request_callback)
> reader = smart_open.http.SeekableBufferedInputBase(URL)
>
> reader.seek(-10, whence=smart_open.constants.WHENCE_END)
> self.assertEqual(reader.tell(), len(BYTES) - 10)
> > read_bytes = reader.read(size=10)
>
> reader = <smart_open.http.SeekableBufferedInputBase object at
> 0x7f83bb2ff880>
> self = <smart_open.tests.test_http.HttpTest
> testMethod=test_seek_from_end>
>
> smart_open/tests/test_http.py:96:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
> smart_open/http.py:175: in read
> bytes_read = self._read_buffer.fill(self._read_iter)
> self = <smart_open.http.SeekableBufferedInputBase object at
> 0x7f83bb2ff880>
> size = 10
> smart_open/bytebuffer.py:155: in fill
> for more_bytes in source:
> new_bytes = b''
> self = <smart_open.bytebuffer.ByteBuffer object at
> 0x7f83bb2ffbc0>
> size = 131072
> source = <generator object
> Response.iter_content.<locals>.generate at 0x7f83bae20660>
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> def generate():
> # Special case for urllib3.
> if hasattr(self.raw, "stream"):
> try:
> yield from self.raw.stream(chunk_size, decode_content=True)
> except ProtocolError as e:
> > raise ChunkedEncodingError(e)
> E requests.exceptions.ChunkedEncodingError: ('Connection
> broken: IncompleteRead(10 bytes read, 58 more expected)', IncompleteRead(10
> bytes read, 58 more expected))
>
> chunk_size = 131072
> self = <Response [200]>
>
> /usr/lib/python3/dist-packages/requests/models.py:822: ChunkedEncodingError
> ________________________ HttpTest.test_seek_from_start
> _________________________
>
> self = <urllib3.response.HTTPResponse object at 0x7f83bb2888b0>
>
> @contextmanager
> def _error_catcher(self) -> typing.Generator[None, None, None]:
> """
> Catch low-level python exceptions, instead re-raising urllib3
> variants, so that low-level exceptions are not leaked in the
> high-level api.
>
> On exit, release the connection back to the pool.
> """
> clean_exit = False
>
> try:
> try:
> > yield
>
> clean_exit = False
> self = <urllib3.response.HTTPResponse object at 0x7f83bb2888b0>
>
> /usr/lib/python3/dist-packages/urllib3/response.py:710:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> self = <urllib3.response.HTTPResponse object at 0x7f83bb2888b0>, amt = 131072
>
> def _raw_read(
> self,
> amt: int | None = None,
> ) -> bytes:
> """
> Reads `amt` of bytes from the socket.
> """
> if self._fp is None:
> return None # type: ignore[return-value]
>
> fp_closed = getattr(self._fp, "closed", False)
>
> with self._error_catcher():
> data = self._fp_read(amt) if not fp_closed else b""
> if amt is not None and amt != 0 and not data:
> # Platform-specific: Buggy versions of Python.
> # Close the connection when no data is returned
> #
> # This is redundant to what httplib/http.client _should_
> # already do. However, versions of python released before
> # December 15, 2012 (http://bugs.python.org/issue16298) do
> # not properly close the connection in all cases. There is
> # no harm in redundantly calling close.
> self._fp.close()
> if (
> self.enforce_content_length
> and self.length_remaining is not None
> and self.length_remaining != 0
> ):
> # This is an edge case that httplib failed to cover due
> # to concerns of backward compatibility. We're
> # addressing it here to make sure IncompleteRead is
> # raised during streaming, so all calls with incorrect
> # Content-Length are caught.
> > raise IncompleteRead(self._fp_bytes_read,
> > self.length_remaining)
> E urllib3.exceptions.IncompleteRead: IncompleteRead(58
> bytes read, 10 more expected)
>
> amt = 131072
> data = b''
> fp_closed = False
> self = <urllib3.response.HTTPResponse object at 0x7f83bb2888b0>
>
> /usr/lib/python3/dist-packages/urllib3/response.py:835: IncompleteRead
>
> The above exception was the direct cause of the following exception:
>
> def generate():
> # Special case for urllib3.
> if hasattr(self.raw, "stream"):
> try:
> > yield from self.raw.stream(chunk_size, decode_content=True)
>
> chunk_size = 131072
> self = <Response [200]>
>
> /usr/lib/python3/dist-packages/requests/models.py:820:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
> /usr/lib/python3/dist-packages/urllib3/response.py:936: in stream
> data = self.read(amt=amt, decode_content=decode_content)
> amt = 131072
> decode_content = True
> self = <urllib3.response.HTTPResponse object at 0x7f83bb2888b0>
> /usr/lib/python3/dist-packages/urllib3/response.py:907: in read
> data = self._raw_read(amt)
> amt = 131072
> cache_content = False
> data = b" hard and got so far but in the end it doesn't even
> matter"
> decode_content = True
> decoded_data = b" hard and got so far but in the end it doesn't even
> matter"
> flush_decoder = False
> self = <urllib3.response.HTTPResponse object at 0x7f83bb2888b0>
> /usr/lib/python3/dist-packages/urllib3/response.py:813: in _raw_read
> with self._error_catcher():
> amt = 131072
> data = b''
> fp_closed = False
> self = <urllib3.response.HTTPResponse object at 0x7f83bb2888b0>
> /usr/lib/python3.12/contextlib.py:158: in __exit__
> self.gen.throw(value)
> self = <contextlib._GeneratorContextManager object at
> 0x7f83bb28b6b0>
> traceback = <traceback object at 0x7f83bad17180>
> typ = <class 'urllib3.exceptions.IncompleteRead'>
> value = IncompleteRead(58 bytes read, 10 more expected)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> self = <urllib3.response.HTTPResponse object at 0x7f83bb2888b0>
>
> @contextmanager
> def _error_catcher(self) -> typing.Generator[None, None, None]:
> """
> Catch low-level python exceptions, instead re-raising urllib3
> variants, so that low-level exceptions are not leaked in the
> high-level api.
>
> On exit, release the connection back to the pool.
> """
> clean_exit = False
>
> try:
> try:
> yield
>
> except SocketTimeout as e:
> # FIXME: Ideally we'd like to include the url in the
> ReadTimeoutError but
> # there is yet no clean way to get at it from this context.
> raise ReadTimeoutError(self._pool, None, "Read timed out.")
> from e # type: ignore[arg-type]
>
> except BaseSSLError as e:
> # FIXME: Is there a better way to differentiate between
> SSLErrors?
> if "read operation timed out" not in str(e):
> # SSL errors related to framing/MAC get wrapped and
> reraised here
> raise SSLError(e) from e
>
> raise ReadTimeoutError(self._pool, None, "Read timed out.")
> from e # type: ignore[arg-type]
>
> except (HTTPException, OSError) as e:
> # This includes IncompleteRead.
> > raise ProtocolError(f"Connection broken: {e!r}", e) from e
> E urllib3.exceptions.ProtocolError: ('Connection broken:
> IncompleteRead(58 bytes read, 10 more expected)', IncompleteRead(58 bytes
> read, 10 more expected))
>
> clean_exit = False
> self = <urllib3.response.HTTPResponse object at 0x7f83bb2888b0>
>
> /usr/lib/python3/dist-packages/urllib3/response.py:727: ProtocolError
>
> During handling of the above exception, another exception occurred:
>
> self = <smart_open.tests.test_http.HttpTest testMethod=test_seek_from_start>
>
> @responses.activate
> def test_seek_from_start(self):
> responses.add_callback(responses.GET, URL, callback=request_callback)
> reader = smart_open.http.SeekableBufferedInputBase(URL)
>
> reader.seek(10)
> self.assertEqual(reader.tell(), 10)
> > read_bytes = reader.read(size=10)
>
> reader = <smart_open.http.SeekableBufferedInputBase object at
> 0x7f83bb28ba30>
> self = <smart_open.tests.test_http.HttpTest
> testMethod=test_seek_from_start>
>
> smart_open/tests/test_http.py:61:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
> smart_open/http.py:175: in read
> bytes_read = self._read_buffer.fill(self._read_iter)
> self = <smart_open.http.SeekableBufferedInputBase object at
> 0x7f83bb28ba30>
> size = 10
> smart_open/bytebuffer.py:155: in fill
> for more_bytes in source:
> new_bytes = b''
> self = <smart_open.bytebuffer.ByteBuffer object at
> 0x7f83bb28bad0>
> size = 131072
> source = <generator object
> Response.iter_content.<locals>.generate at 0x7f83bae21d20>
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> def generate():
> # Special case for urllib3.
> if hasattr(self.raw, "stream"):
> try:
> yield from self.raw.stream(chunk_size, decode_content=True)
> except ProtocolError as e:
> > raise ChunkedEncodingError(e)
> E requests.exceptions.ChunkedEncodingError: ('Connection
> broken: IncompleteRead(58 bytes read, 10 more expected)', IncompleteRead(58
> bytes read, 10 more expected))
>
> chunk_size = 131072
> self = <Response [200]>
>
> /usr/lib/python3/dist-packages/requests/models.py:822: ChunkedEncodingError
> =============================== warnings summary
> ===============================
> .pybuild/cpython3_3.12_smart-open/build/smart_open/tests/test_http.py: 1
> warning
> .pybuild/cpython3_3.12_smart-open/build/smart_open/tests/test_smart_open.py:
> 10 warnings
> /usr/lib/python3/dist-packages/responses/__init__.py:609:
> DeprecationWarning: stream argument is deprecated. Use stream parameter in
> request directly
> warn(
>
> .pybuild/cpython3_3.12_smart-open/build/smart_open/tests/test_smart_open.py::SmartOpenTest::test_incorrect
> .pybuild/cpython3_3.12_smart-open/build/smart_open/tests/test_smart_open.py::SmartOpenTest::test_incorrect
> .pybuild/cpython3_3.12_smart-open/build/smart_open/tests/test_smart_open.py::SmartOpenTest::test_incorrect
> .pybuild/cpython3_3.12_smart-open/build/smart_open/tests/test_smart_open.py::SmartOpenTest::test_incorrect
>
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_smart-open/build/smart_open/smart_open_lib.py:494:
> DeprecationWarning: This function is deprecated. See
> https://github.com/RaRe-Technologies/smart_open/blob/develop/MIGRATING_FROM_OLDER_VERSIONS.rst
> for more information
> warnings.warn(message, category=DeprecationWarning)
>
> -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
> ============================= slowest 20 durations
> =============================
> 0.65s call
> .pybuild/cpython3_3.12_smart-open/build/smart_open/tests/test_hdfs.py::CliRawInputBaseTest::test_unzip
> 0.63s call
> .pybuild/cpython3_3.12_smart-open/build/smart_open/tests/test_hdfs.py::CliRawOutputBaseTest::test_zip
> 0.61s call
> .pybuild/cpython3_3.12_smart-open/build/smart_open/tests/test_hdfs.py::CliRawInputBaseTest::test_context_manager
> 0.59s call
> .pybuild/cpython3_3.12_smart-open/build/smart_open/tests/test_hdfs.py::CliRawInputBaseTest::test_read
> 0.55s call
> .pybuild/cpython3_3.12_smart-open/build/smart_open/tests/test_hdfs.py::CliRawOutputBaseTest::test_write
> 0.53s call
> .pybuild/cpython3_3.12_smart-open/build/smart_open/tests/test_hdfs.py::CliRawInputBaseTest::test_read_75
> 0.07s call
> .pybuild/cpython3_3.12_smart-open/build/smart_open/tests/test_ssh.py::SSHOpen::test_open
> 0.05s call
> .pybuild/cpython3_3.12_smart-open/build/smart_open/tests/test_smart_open.py::SmartOpenHttpTest::test_http_bz2
> 0.05s call
> .pybuild/cpython3_3.12_smart-open/build/smart_open/tests/test_smart_open.py::SmartOpenHttpTest::test_http_bz2_query
> 0.01s call
> .pybuild/cpython3_3.12_smart-open/build/smart_open/tests/test_azure.py::WriterTest::test_write_03a
>
> (10 durations < 0.005s hidden. Use -vv to show these durations.)
> =========================== short test summary info
> ============================
> FAILED smart_open/tests/test_http.py::HttpTest::test_https_seek_forward -
> req...
> FAILED smart_open/tests/test_http.py::HttpTest::test_seek_from_current -
> requ...
> FAILED smart_open/tests/test_http.py::HttpTest::test_seek_from_end -
> requests...
> FAILED smart_open/tests/test_http.py::HttpTest::test_seek_from_start -
> reques...
> SKIPPED [1] smart_open/tests/test_package.py:18: requires missing dependencies
> SKIPPED [1] smart_open/tests/test_package.py:13: requires missing dependencies
> SKIPPED [1] smart_open/tests/test_package.py:24: requires missing dependencies
> SKIPPED [1] smart_open/tests/test_s3.py:140: The test case needs a Moto
> server running on the local 5000 port.
> SKIPPED [1] smart_open/tests/test_s3.py:418: For Debian skip ReaderTest
> SKIPPED [1] smart_open/tests/test_s3.py:426: For Debian skip ReaderTest
> SKIPPED [1] smart_open/tests/test_s3.py:325: For Debian skip ReaderTest
> SKIPPED [1] smart_open/tests/test_s3.py:228: For Debian skip ReaderTest
> SKIPPED [1] smart_open/tests/test_s3.py:240: For Debian skip ReaderTest
> SKIPPED [1] smart_open/tests/test_s3.py:249: For Debian skip ReaderTest
> SKIPPED [1] smart_open/tests/test_s3.py:395: For Debian skip ReaderTest
> SKIPPED [1] smart_open/tests/test_s3.py:441: For Debian skip ReaderTest
> SKIPPED [1] smart_open/tests/test_s3.py:339: For Debian skip ReaderTest
> SKIPPED [1] smart_open/tests/test_s3.py:368: For Debian skip ReaderTest
> SKIPPED [1] smart_open/tests/test_s3.py:384: For Debian skip ReaderTest
> SKIPPED [1] smart_open/tests/test_s3.py:261: For Debian skip ReaderTest
> SKIPPED [1] smart_open/tests/test_s3.py:291: For Debian skip ReaderTest
> SKIPPED [1] smart_open/tests/test_s3.py:305: For Debian skip ReaderTest
> SKIPPED [1] smart_open/tests/test_s3.py:316: For Debian skip ReaderTest
> SKIPPED [1] smart_open/tests/test_s3.py:279: For Debian skip ReaderTest
> SKIPPED [1] smart_open/tests/test_s3.py:406: For Debian skip ReaderTest
> SKIPPED [1] smart_open/tests/test_s3.py:541: For Debian skip
> MultipartWriterTest
> SKIPPED [1] smart_open/tests/test_s3.py:569: For Debian skip
> MultipartWriterTest
> SKIPPED [1] smart_open/tests/test_s3.py:576: For Debian skip
> MultipartWriterTest
> SKIPPED [1] smart_open/tests/test_s3.py:529: For Debian skip
> MultipartWriterTest
> SKIPPED [1] smart_open/tests/test_s3.py:558: For Debian skip
> MultipartWriterTest
> SKIPPED [1] smart_open/tests/test_s3.py:564: For Debian skip
> MultipartWriterTest
> SKIPPED [1] smart_open/tests/test_s3.py:583: For Debian skip
> MultipartWriterTest
> SKIPPED [1] smart_open/tests/test_s3.py:463: For Debian skip
> MultipartWriterTest
> SKIPPED [1] smart_open/tests/test_s3.py:476: For Debian skip
> MultipartWriterTest
> SKIPPED [1] smart_open/tests/test_s3.py:486: For Debian skip
> MultipartWriterTest
> SKIPPED [1] smart_open/tests/test_s3.py:495: For Debian skip
> MultipartWriterTest
> SKIPPED [1] smart_open/tests/test_s3.py:517: For Debian skip
> MultipartWriterTest
> SKIPPED [1] smart_open/tests/test_s3.py:593: For Debian skip
> MultipartWriterTest
> SKIPPED [1] smart_open/tests/test_s3.py:664: For Debian skip
> SinglepartWriterTest
> SKIPPED [1] smart_open/tests/test_s3.py:687: For Debian skip
> SinglepartWriterTest
> SKIPPED [1] smart_open/tests/test_s3.py:694: For Debian skip
> SinglepartWriterTest
> SKIPPED [1] smart_open/tests/test_s3.py:681: For Debian skip
> SinglepartWriterTest
> SKIPPED [1] smart_open/tests/test_s3.py:619: For Debian skip
> SinglepartWriterTest
> SKIPPED [1] smart_open/tests/test_s3.py:632: For Debian skip
> SinglepartWriterTest
> SKIPPED [1] smart_open/tests/test_s3.py:642: For Debian skip
> SinglepartWriterTest
> SKIPPED [1] smart_open/tests/test_s3.py:653: For Debian skip
> SinglepartWriterTest
> SKIPPED [1] smart_open/tests/test_s3.py:701: For Debian skip
> SinglepartWriterTest
> SKIPPED [1] smart_open/tests/test_s3.py:749: For Debian skip
> SinglepartWriterTest
> SKIPPED [1] smart_open/tests/test_s3.py:737: For Debian skip
> SinglepartWriterTest
> SKIPPED [1] smart_open/tests/test_s3.py:727: For Debian skip
> SinglepartWriterTest
> SKIPPED [1] smart_open/tests/test_s3.py:760: For Debian skip
> SinglepartWriterTest
> SKIPPED [1] smart_open/tests/test_s3.py:769: For Debian skip
> SinglepartWriterTest
> SKIPPED [1] smart_open/tests/test_s3.py:800: For Debian skip this test
> SKIPPED [1] smart_open/tests/test_s3.py:831: For Debian skip this test
> SKIPPED [1] smart_open/tests/test_s3.py:857: For Debian skip
> IterBucketSingleProcessTest
> SKIPPED [1] smart_open/tests/test_s3.py:874: For Debian skip
> IterBucketCredentialsTest
> SKIPPED [1] smart_open/tests/test_s3.py:897: For Debian skip DownloadKeyTest
> SKIPPED [1] smart_open/tests/test_s3.py:904: For Debian skip DownloadKeyTest
> SKIPPED [1] smart_open/tests/test_s3.py:922: For Debian skip DownloadKeyTest
> SKIPPED [1] smart_open/tests/test_s3.py:913: For Debian skip DownloadKeyTest
> SKIPPED [1] smart_open/tests/test_s3.py:932: For Debian skip DownloadKeyTest
> SKIPPED [1] smart_open/tests/test_s3.py:949: For Debian skip OpenTest
> SKIPPED [3]
> ../../../../../../usr/lib/python3/dist-packages/_pytest/unittest.py:378: For
> Debian skip this test
> SKIPPED [1] smart_open/tests/test_s3_version.py:62: For Debian skip
> TestVersionId
> SKIPPED [1] smart_open/tests/test_s3_version.py:68: For Debian skip
> TestVersionId
> SKIPPED [1] smart_open/tests/test_s3_version.py:55: For Debian skip
> TestVersionId
> SKIPPED [1] smart_open/tests/test_s3_version.py:80: For Debian skip
> TestVersionId
> SKIPPED [1] smart_open/tests/test_s3_version.py:74: For Debian skip
> TestVersionId
> SKIPPED [1] smart_open/tests/test_s3_version.py:87: For Debian skip
> TestVersionId
> SKIPPED [1] smart_open/tests/test_s3_version.py:94: For Debian skip
> TestVersionId
> SKIPPED [1] smart_open/tests/test_smart_open.py:721: For Debian skip
> test_read_never_returns_none
> SKIPPED [1] smart_open/tests/test_smart_open.py:832: Skipping
> test_read_newline_binary
> SKIPPED [1] smart_open/tests/test_smart_open.py:774: Skipping
> test_read_newline_cr
> SKIPPED [1] smart_open/tests/test_smart_open.py:804: Skipping
> test_read_newline_crlf
> SKIPPED [1] smart_open/tests/test_smart_open.py:758: Skipping
> test_read_newline_empty
> SKIPPED [1] smart_open/tests/test_smart_open.py:789: Skipping
> test_read_newline_lf
> SKIPPED [1] smart_open/tests/test_smart_open.py:737: Skipping
> test_read_newline_none
> SKIPPED [1] smart_open/tests/test_smart_open.py:818: Skipping
> test_read_newline_slurp
> SKIPPED [1] smart_open/tests/test_smart_open.py:923: For Debian skip
> test_readline
> SKIPPED [1] smart_open/tests/test_smart_open.py:953: For Debian skip
> test_readline_eof
> SKIPPED [1] smart_open/tests/test_smart_open.py:936: For Debian skip
> test_readline_iter
> SKIPPED [1] smart_open/tests/test_smart_open.py:969: For Debian skip
> test_s3_iter_lines
> SKIPPED [1] smart_open/tests/test_smart_open.py:1094: For Debian skip
> test_s3_iter_moto
> SKIPPED [1] smart_open/tests/test_smart_open.py:1127: For Debian skip
> test_s3_read_moto
> SKIPPED [1] smart_open/tests/test_smart_open.py:1145: For Debian skip
> test_s3_seek_moto
> SKIPPED [1] smart_open/tests/test_smart_open.py:1167: For Debian skip
> test_s3_tell
> SKIPPED [1] smart_open/tests/test_smart_open.py:895: Skipping
> test_write_newline_cr
> SKIPPED [1] smart_open/tests/test_smart_open.py:909: Skipping
> test_write_newline_crlf
> SKIPPED [1] smart_open/tests/test_smart_open.py:867: Skipping
> test_write_newline_empty
> SKIPPED [1] smart_open/tests/test_smart_open.py:881: Skipping
> test_write_newline_lf
> SKIPPED [1] smart_open/tests/test_smart_open.py:847: Skipping
> test_write_newline_none
> SKIPPED [1] smart_open/tests/test_smart_open.py:1381: For Debian skip
> test_s3_metadata_write
> SKIPPED [1] smart_open/tests/test_smart_open.py:1361: For Debian skip
> test_s3_modes_moto
> SKIPPED [1] smart_open/tests/test_smart_open.py:1426: For Debian skip
> test_write_bad_encoding_replace
> SKIPPED [1] smart_open/tests/test_smart_open.py:1415: For Debian skip
> test_write_bad_encoding_strict
> SKIPPED [1] smart_open/tests/test_smart_open.py:1688: For Debian skip
> test_gzip_read_mode
> SKIPPED [1] smart_open/tests/test_smart_open.py:1676: For Debian skip
> test_gzip_write_mode
> SKIPPED [1] smart_open/tests/test_smart_open.py:1604: For Debian skip test_r
> SKIPPED [1] smart_open/tests/test_smart_open.py:1705: For Debian skip
> test_read_encoding
> SKIPPED [1] smart_open/tests/test_smart_open.py:1719: For Debian skip
> test_read_encoding_implicit_text
> SKIPPED [1] smart_open/tests/test_smart_open.py:1626: For Debian skip
> test_rw_encoding
> SKIPPED [1] smart_open/tests/test_smart_open.py:1651: For Debian skip
> test_rw_gzip
> SKIPPED [1] smart_open/tests/test_smart_open.py:1761: For Debian skip
> test_write_bad_encoding_replace
> SKIPPED [1] smart_open/tests/test_smart_open.py:1748: For Debian skip
> test_write_bad_encoding_strict
> SKIPPED [1] smart_open/tests/test_smart_open.py:1733: For Debian skip
> test_write_encoding
> SKIPPED [1] smart_open/tests/test_smart_open.py:1777: For Debian skip
> test_write_text_gzip
> =========== 4 failed, 198 passed, 104 skipped, 15 warnings in 5.06s
> ============
> E: pybuild pybuild:389: test: plugin distutils failed with: exit code=1: cd
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_smart-open/build; python3.12 -m
> pytest smart_open/tests
> I: pybuild pybuild:308: cp -a smart_open/tests
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_smart-open/build/smart_open
> I: pybuild base:311: cd
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_smart-open/build; python3.11 -m
> pytest smart_open/tests
> ============================= test session starts
> ==============================
> platform linux -- Python 3.11.9, pytest-8.2.2, pluggy-1.5.0
> rootdir: /<<PKGBUILDDIR>>
> configfile: tox.ini
> collected 306 items
>
> smart_open/tests/test_azure.py ....................................... [
> 12%]
> smart_open/tests/test_bytebuffer.py ............... [
> 17%]
> smart_open/tests/test_hdfs.py ........ [
> 20%]
> smart_open/tests/test_http.py ..F...FFF... [
> 24%]
> smart_open/tests/test_package.py sss [
> 25%]
> smart_open/tests/test_s3.py s..sssssssssssssssssssssssssssssssssssssssss [
> 39%]
> sssssssssssss..sss [
> 45%]
> smart_open/tests/test_s3_version.py sssssss [
> 47%]
> smart_open/tests/test_smart_open.py .................................... [
> 59%]
> ...................................ssssssssssssssss....sssss............ [
> 83%]
> .s.s.ss.......sssss..ss.ssss.. [
> 92%]
> smart_open/tests/test_ssh.py ..... [
> 94%]
> smart_open/tests/test_transport.py ... [
> 95%]
> smart_open/tests/test_utils.py ..............
> [100%]
>
> =================================== FAILURES
> ===================================
> _______________________ HttpTest.test_https_seek_forward
> _______________________
>
> self = <urllib3.response.HTTPResponse object at 0x7fe8ea5f8790>
>
> @contextmanager
> def _error_catcher(self) -> typing.Generator[None, None, None]:
> """
> Catch low-level python exceptions, instead re-raising urllib3
> variants, so that low-level exceptions are not leaked in the
> high-level api.
>
> On exit, release the connection back to the pool.
> """
> clean_exit = False
>
> try:
> try:
> > yield
>
> clean_exit = False
> self = <urllib3.response.HTTPResponse object at 0x7fe8ea5f8790>
>
> /usr/lib/python3/dist-packages/urllib3/response.py:710:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> self = <urllib3.response.HTTPResponse object at 0x7fe8ea5f8790>, amt = 131072
>
> def _raw_read(
> self,
> amt: int | None = None,
> ) -> bytes:
> """
> Reads `amt` of bytes from the socket.
> """
> if self._fp is None:
> return None # type: ignore[return-value]
>
> fp_closed = getattr(self._fp, "closed", False)
>
> with self._error_catcher():
> data = self._fp_read(amt) if not fp_closed else b""
> if amt is not None and amt != 0 and not data:
> # Platform-specific: Buggy versions of Python.
> # Close the connection when no data is returned
> #
> # This is redundant to what httplib/http.client _should_
> # already do. However, versions of python released before
> # December 15, 2012 (http://bugs.python.org/issue16298) do
> # not properly close the connection in all cases. There is
> # no harm in redundantly calling close.
> self._fp.close()
> if (
> self.enforce_content_length
> and self.length_remaining is not None
> and self.length_remaining != 0
> ):
> # This is an edge case that httplib failed to cover due
> # to concerns of backward compatibility. We're
> # addressing it here to make sure IncompleteRead is
> # raised during streaming, so all calls with incorrect
> # Content-Length are caught.
> > raise IncompleteRead(self._fp_bytes_read,
> > self.length_remaining)
> E urllib3.exceptions.IncompleteRead: IncompleteRead(58
> bytes read, 10 more expected)
>
> amt = 131072
> data = b''
> fp_closed = False
> self = <urllib3.response.HTTPResponse object at 0x7fe8ea5f8790>
>
> /usr/lib/python3/dist-packages/urllib3/response.py:835: IncompleteRead
>
> The above exception was the direct cause of the following exception:
>
> def generate():
> # Special case for urllib3.
> if hasattr(self.raw, "stream"):
> try:
> > yield from self.raw.stream(chunk_size, decode_content=True)
>
> chunk_size = 131072
> self = <Response [200]>
>
> /usr/lib/python3/dist-packages/requests/models.py:820:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
> /usr/lib/python3/dist-packages/urllib3/response.py:936: in stream
> data = self.read(amt=amt, decode_content=decode_content)
> amt = 131072
> decode_content = True
> self = <urllib3.response.HTTPResponse object at 0x7fe8ea5f8790>
> /usr/lib/python3/dist-packages/urllib3/response.py:907: in read
> data = self._raw_read(amt)
> amt = 131072
> cache_content = False
> data = b" hard and got so far but in the end it doesn't even
> matter"
> decode_content = True
> decoded_data = b" hard and got so far but in the end it doesn't even
> matter"
> flush_decoder = False
> self = <urllib3.response.HTTPResponse object at 0x7fe8ea5f8790>
> /usr/lib/python3/dist-packages/urllib3/response.py:813: in _raw_read
> with self._error_catcher():
> amt = 131072
> data = b''
> fp_closed = False
> self = <urllib3.response.HTTPResponse object at 0x7fe8ea5f8790>
> /usr/lib/python3.11/contextlib.py:158: in __exit__
> self.gen.throw(typ, value, traceback)
> self = <contextlib._GeneratorContextManager object at
> 0x7fe8ea1d1a10>
> traceback = <traceback object at 0x7fe8ea253400>
> typ = <class 'urllib3.exceptions.IncompleteRead'>
> value = IncompleteRead(58 bytes read, 10 more expected)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> self = <urllib3.response.HTTPResponse object at 0x7fe8ea5f8790>
>
> @contextmanager
> def _error_catcher(self) -> typing.Generator[None, None, None]:
> """
> Catch low-level python exceptions, instead re-raising urllib3
> variants, so that low-level exceptions are not leaked in the
> high-level api.
>
> On exit, release the connection back to the pool.
> """
> clean_exit = False
>
> try:
> try:
> yield
>
> except SocketTimeout as e:
> # FIXME: Ideally we'd like to include the url in the
> ReadTimeoutError but
> # there is yet no clean way to get at it from this context.
> raise ReadTimeoutError(self._pool, None, "Read timed out.")
> from e # type: ignore[arg-type]
>
> except BaseSSLError as e:
> # FIXME: Is there a better way to differentiate between
> SSLErrors?
> if "read operation timed out" not in str(e):
> # SSL errors related to framing/MAC get wrapped and
> reraised here
> raise SSLError(e) from e
>
> raise ReadTimeoutError(self._pool, None, "Read timed out.")
> from e # type: ignore[arg-type]
>
> except (HTTPException, OSError) as e:
> # This includes IncompleteRead.
> > raise ProtocolError(f"Connection broken: {e!r}", e) from e
> E urllib3.exceptions.ProtocolError: ('Connection broken:
> IncompleteRead(58 bytes read, 10 more expected)', IncompleteRead(58 bytes
> read, 10 more expected))
>
> clean_exit = False
> self = <urllib3.response.HTTPResponse object at 0x7fe8ea5f8790>
>
> /usr/lib/python3/dist-packages/urllib3/response.py:727: ProtocolError
>
> During handling of the above exception, another exception occurred:
>
> self = <smart_open.tests.test_http.HttpTest
> testMethod=test_https_seek_forward>
>
> @responses.activate
> def test_https_seek_forward(self):
> """Did the seek forward over HTTPS work?"""
> responses.add_callback(responses.GET, HTTPS_URL,
> callback=request_callback)
>
> with smart_open.open(HTTPS_URL, "rb") as fin:
> fin.seek(10)
> > read_bytes = fin.read(size=10)
>
> fin = <smart_open.http.SeekableBufferedInputBase object at
> 0x7fe8ea5f90f0>
> self = <smart_open.tests.test_http.HttpTest
> testMethod=test_https_seek_forward>
>
> smart_open/tests/test_http.py:142:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
> smart_open/http.py:175: in read
> bytes_read = self._read_buffer.fill(self._read_iter)
> self = <smart_open.http.SeekableBufferedInputBase object at
> 0x7fe8ea5f90f0>
> size = 10
> smart_open/bytebuffer.py:155: in fill
> for more_bytes in source:
> new_bytes = b''
> self = <smart_open.bytebuffer.ByteBuffer object at
> 0x7fe8ea252c50>
> size = 131072
> source = <generator object
> Response.iter_content.<locals>.generate at 0x7fe8ea4ef100>
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> def generate():
> # Special case for urllib3.
> if hasattr(self.raw, "stream"):
> try:
> yield from self.raw.stream(chunk_size, decode_content=True)
> except ProtocolError as e:
> > raise ChunkedEncodingError(e)
> E requests.exceptions.ChunkedEncodingError: ('Connection
> broken: IncompleteRead(58 bytes read, 10 more expected)', IncompleteRead(58
> bytes read, 10 more expected))
>
> chunk_size = 131072
> self = <Response [200]>
>
> /usr/lib/python3/dist-packages/requests/models.py:822: ChunkedEncodingError
> _______________________ HttpTest.test_seek_from_current
> ________________________
>
> self = <urllib3.response.HTTPResponse object at 0x7fe8ea28ece0>
>
> @contextmanager
> def _error_catcher(self) -> typing.Generator[None, None, None]:
> """
> Catch low-level python exceptions, instead re-raising urllib3
> variants, so that low-level exceptions are not leaked in the
> high-level api.
>
> On exit, release the connection back to the pool.
> """
> clean_exit = False
>
> try:
> try:
> > yield
>
> clean_exit = False
> self = <urllib3.response.HTTPResponse object at 0x7fe8ea28ece0>
>
> /usr/lib/python3/dist-packages/urllib3/response.py:710:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> self = <urllib3.response.HTTPResponse object at 0x7fe8ea28ece0>, amt = 131072
>
> def _raw_read(
> self,
> amt: int | None = None,
> ) -> bytes:
> """
> Reads `amt` of bytes from the socket.
> """
> if self._fp is None:
> return None # type: ignore[return-value]
>
> fp_closed = getattr(self._fp, "closed", False)
>
> with self._error_catcher():
> data = self._fp_read(amt) if not fp_closed else b""
> if amt is not None and amt != 0 and not data:
> # Platform-specific: Buggy versions of Python.
> # Close the connection when no data is returned
> #
> # This is redundant to what httplib/http.client _should_
> # already do. However, versions of python released before
> # December 15, 2012 (http://bugs.python.org/issue16298) do
> # not properly close the connection in all cases. There is
> # no harm in redundantly calling close.
> self._fp.close()
> if (
> self.enforce_content_length
> and self.length_remaining is not None
> and self.length_remaining != 0
> ):
> # This is an edge case that httplib failed to cover due
> # to concerns of backward compatibility. We're
> # addressing it here to make sure IncompleteRead is
> # raised during streaming, so all calls with incorrect
> # Content-Length are caught.
> > raise IncompleteRead(self._fp_bytes_read,
> > self.length_remaining)
> E urllib3.exceptions.IncompleteRead: IncompleteRead(58
> bytes read, 10 more expected)
>
> amt = 131072
> data = b''
> fp_closed = False
> self = <urllib3.response.HTTPResponse object at 0x7fe8ea28ece0>
>
> /usr/lib/python3/dist-packages/urllib3/response.py:835: IncompleteRead
>
> The above exception was the direct cause of the following exception:
>
> def generate():
> # Special case for urllib3.
> if hasattr(self.raw, "stream"):
> try:
> > yield from self.raw.stream(chunk_size, decode_content=True)
>
> chunk_size = 131072
> self = <Response [200]>
>
> /usr/lib/python3/dist-packages/requests/models.py:820:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
> /usr/lib/python3/dist-packages/urllib3/response.py:936: in stream
> data = self.read(amt=amt, decode_content=decode_content)
> amt = 131072
> decode_content = True
> self = <urllib3.response.HTTPResponse object at 0x7fe8ea28ece0>
> /usr/lib/python3/dist-packages/urllib3/response.py:907: in read
> data = self._raw_read(amt)
> amt = 131072
> cache_content = False
> data = b" hard and got so far but in the end it doesn't even
> matter"
> decode_content = True
> decoded_data = b" hard and got so far but in the end it doesn't even
> matter"
> flush_decoder = False
> self = <urllib3.response.HTTPResponse object at 0x7fe8ea28ece0>
> /usr/lib/python3/dist-packages/urllib3/response.py:813: in _raw_read
> with self._error_catcher():
> amt = 131072
> data = b''
> fp_closed = False
> self = <urllib3.response.HTTPResponse object at 0x7fe8ea28ece0>
> /usr/lib/python3.11/contextlib.py:158: in __exit__
> self.gen.throw(typ, value, traceback)
> self = <contextlib._GeneratorContextManager object at
> 0x7fe8e9ece550>
> traceback = <traceback object at 0x7fe8ea146a00>
> typ = <class 'urllib3.exceptions.IncompleteRead'>
> value = IncompleteRead(58 bytes read, 10 more expected)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> self = <urllib3.response.HTTPResponse object at 0x7fe8ea28ece0>
>
> @contextmanager
> def _error_catcher(self) -> typing.Generator[None, None, None]:
> """
> Catch low-level python exceptions, instead re-raising urllib3
> variants, so that low-level exceptions are not leaked in the
> high-level api.
>
> On exit, release the connection back to the pool.
> """
> clean_exit = False
>
> try:
> try:
> yield
>
> except SocketTimeout as e:
> # FIXME: Ideally we'd like to include the url in the
> ReadTimeoutError but
> # there is yet no clean way to get at it from this context.
> raise ReadTimeoutError(self._pool, None, "Read timed out.")
> from e # type: ignore[arg-type]
>
> except BaseSSLError as e:
> # FIXME: Is there a better way to differentiate between
> SSLErrors?
> if "read operation timed out" not in str(e):
> # SSL errors related to framing/MAC get wrapped and
> reraised here
> raise SSLError(e) from e
>
> raise ReadTimeoutError(self._pool, None, "Read timed out.")
> from e # type: ignore[arg-type]
>
> except (HTTPException, OSError) as e:
> # This includes IncompleteRead.
> > raise ProtocolError(f"Connection broken: {e!r}", e) from e
> E urllib3.exceptions.ProtocolError: ('Connection broken:
> IncompleteRead(58 bytes read, 10 more expected)', IncompleteRead(58 bytes
> read, 10 more expected))
>
> clean_exit = False
> self = <urllib3.response.HTTPResponse object at 0x7fe8ea28ece0>
>
> /usr/lib/python3/dist-packages/urllib3/response.py:727: ProtocolError
>
> During handling of the above exception, another exception occurred:
>
> self = <smart_open.tests.test_http.HttpTest testMethod=test_seek_from_current>
>
> @responses.activate
> def test_seek_from_current(self):
> responses.add_callback(responses.GET, URL, callback=request_callback)
> reader = smart_open.http.SeekableBufferedInputBase(URL)
>
> reader.seek(10)
> > read_bytes = reader.read(size=10)
>
> reader = <smart_open.http.SeekableBufferedInputBase object at
> 0x7fe8ea28e0e0>
> self = <smart_open.tests.test_http.HttpTest
> testMethod=test_seek_from_current>
>
> smart_open/tests/test_http.py:79:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
> smart_open/http.py:175: in read
> bytes_read = self._read_buffer.fill(self._read_iter)
> self = <smart_open.http.SeekableBufferedInputBase object at
> 0x7fe8ea28e0e0>
> size = 10
> smart_open/bytebuffer.py:155: in fill
> for more_bytes in source:
> new_bytes = b''
> self = <smart_open.bytebuffer.ByteBuffer object at
> 0x7fe8ea146650>
> size = 131072
> source = <generator object
> Response.iter_content.<locals>.generate at 0x7fe8e9f58130>
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> def generate():
> # Special case for urllib3.
> if hasattr(self.raw, "stream"):
> try:
> yield from self.raw.stream(chunk_size, decode_content=True)
> except ProtocolError as e:
> > raise ChunkedEncodingError(e)
> E requests.exceptions.ChunkedEncodingError: ('Connection
> broken: IncompleteRead(58 bytes read, 10 more expected)', IncompleteRead(58
> bytes read, 10 more expected))
>
> chunk_size = 131072
> self = <Response [200]>
>
> /usr/lib/python3/dist-packages/requests/models.py:822: ChunkedEncodingError
> _________________________ HttpTest.test_seek_from_end
> __________________________
>
> self = <urllib3.response.HTTPResponse object at 0x7fe8ea5fcd30>
>
> @contextmanager
> def _error_catcher(self) -> typing.Generator[None, None, None]:
> """
> Catch low-level python exceptions, instead re-raising urllib3
> variants, so that low-level exceptions are not leaked in the
> high-level api.
>
> On exit, release the connection back to the pool.
> """
> clean_exit = False
>
> try:
> try:
> > yield
>
> clean_exit = False
> self = <urllib3.response.HTTPResponse object at 0x7fe8ea5fcd30>
>
> /usr/lib/python3/dist-packages/urllib3/response.py:710:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> self = <urllib3.response.HTTPResponse object at 0x7fe8ea5fcd30>, amt = 131072
>
> def _raw_read(
> self,
> amt: int | None = None,
> ) -> bytes:
> """
> Reads `amt` of bytes from the socket.
> """
> if self._fp is None:
> return None # type: ignore[return-value]
>
> fp_closed = getattr(self._fp, "closed", False)
>
> with self._error_catcher():
> data = self._fp_read(amt) if not fp_closed else b""
> if amt is not None and amt != 0 and not data:
> # Platform-specific: Buggy versions of Python.
> # Close the connection when no data is returned
> #
> # This is redundant to what httplib/http.client _should_
> # already do. However, versions of python released before
> # December 15, 2012 (http://bugs.python.org/issue16298) do
> # not properly close the connection in all cases. There is
> # no harm in redundantly calling close.
> self._fp.close()
> if (
> self.enforce_content_length
> and self.length_remaining is not None
> and self.length_remaining != 0
> ):
> # This is an edge case that httplib failed to cover due
> # to concerns of backward compatibility. We're
> # addressing it here to make sure IncompleteRead is
> # raised during streaming, so all calls with incorrect
> # Content-Length are caught.
> > raise IncompleteRead(self._fp_bytes_read,
> > self.length_remaining)
> E urllib3.exceptions.IncompleteRead: IncompleteRead(10
> bytes read, 58 more expected)
>
> amt = 131072
> data = b''
> fp_closed = False
> self = <urllib3.response.HTTPResponse object at 0x7fe8ea5fcd30>
>
> /usr/lib/python3/dist-packages/urllib3/response.py:835: IncompleteRead
>
> The above exception was the direct cause of the following exception:
>
> def generate():
> # Special case for urllib3.
> if hasattr(self.raw, "stream"):
> try:
> > yield from self.raw.stream(chunk_size, decode_content=True)
>
> chunk_size = 131072
> self = <Response [200]>
>
> /usr/lib/python3/dist-packages/requests/models.py:820:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
> /usr/lib/python3/dist-packages/urllib3/response.py:936: in stream
> data = self.read(amt=amt, decode_content=decode_content)
> amt = 131072
> decode_content = True
> self = <urllib3.response.HTTPResponse object at 0x7fe8ea5fcd30>
> /usr/lib/python3/dist-packages/urllib3/response.py:907: in read
> data = self._raw_read(amt)
> amt = 131072
> cache_content = False
> data = b'ven matter'
> decode_content = True
> decoded_data = b'ven matter'
> flush_decoder = False
> self = <urllib3.response.HTTPResponse object at 0x7fe8ea5fcd30>
> /usr/lib/python3/dist-packages/urllib3/response.py:813: in _raw_read
> with self._error_catcher():
> amt = 131072
> data = b''
> fp_closed = False
> self = <urllib3.response.HTTPResponse object at 0x7fe8ea5fcd30>
> /usr/lib/python3.11/contextlib.py:158: in __exit__
> self.gen.throw(typ, value, traceback)
> self = <contextlib._GeneratorContextManager object at
> 0x7fe8ea1b2d10>
> traceback = <traceback object at 0x7fe8ea1b2900>
> typ = <class 'urllib3.exceptions.IncompleteRead'>
> value = IncompleteRead(10 bytes read, 58 more expected)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> self = <urllib3.response.HTTPResponse object at 0x7fe8ea5fcd30>
>
> @contextmanager
> def _error_catcher(self) -> typing.Generator[None, None, None]:
> """
> Catch low-level python exceptions, instead re-raising urllib3
> variants, so that low-level exceptions are not leaked in the
> high-level api.
>
> On exit, release the connection back to the pool.
> """
> clean_exit = False
>
> try:
> try:
> yield
>
> except SocketTimeout as e:
> # FIXME: Ideally we'd like to include the url in the
> ReadTimeoutError but
> # there is yet no clean way to get at it from this context.
> raise ReadTimeoutError(self._pool, None, "Read timed out.")
> from e # type: ignore[arg-type]
>
> except BaseSSLError as e:
> # FIXME: Is there a better way to differentiate between
> SSLErrors?
> if "read operation timed out" not in str(e):
> # SSL errors related to framing/MAC get wrapped and
> reraised here
> raise SSLError(e) from e
>
> raise ReadTimeoutError(self._pool, None, "Read timed out.")
> from e # type: ignore[arg-type]
>
> except (HTTPException, OSError) as e:
> # This includes IncompleteRead.
> > raise ProtocolError(f"Connection broken: {e!r}", e) from e
> E urllib3.exceptions.ProtocolError: ('Connection broken:
> IncompleteRead(10 bytes read, 58 more expected)', IncompleteRead(10 bytes
> read, 58 more expected))
>
> clean_exit = False
> self = <urllib3.response.HTTPResponse object at 0x7fe8ea5fcd30>
>
> /usr/lib/python3/dist-packages/urllib3/response.py:727: ProtocolError
>
> During handling of the above exception, another exception occurred:
>
> self = <smart_open.tests.test_http.HttpTest testMethod=test_seek_from_end>
>
> @responses.activate
> def test_seek_from_end(self):
> responses.add_callback(responses.GET, URL, callback=request_callback)
> reader = smart_open.http.SeekableBufferedInputBase(URL)
>
> reader.seek(-10, whence=smart_open.constants.WHENCE_END)
> self.assertEqual(reader.tell(), len(BYTES) - 10)
> > read_bytes = reader.read(size=10)
>
> reader = <smart_open.http.SeekableBufferedInputBase object at
> 0x7fe8ea5fc250>
> self = <smart_open.tests.test_http.HttpTest
> testMethod=test_seek_from_end>
>
> smart_open/tests/test_http.py:96:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
> smart_open/http.py:175: in read
> bytes_read = self._read_buffer.fill(self._read_iter)
> self = <smart_open.http.SeekableBufferedInputBase object at
> 0x7fe8ea5fc250>
> size = 10
> smart_open/bytebuffer.py:155: in fill
> for more_bytes in source:
> new_bytes = b''
> self = <smart_open.bytebuffer.ByteBuffer object at
> 0x7fe8ea1b2c50>
> size = 131072
> source = <generator object
> Response.iter_content.<locals>.generate at 0x7fe8e9f58f40>
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> def generate():
> # Special case for urllib3.
> if hasattr(self.raw, "stream"):
> try:
> yield from self.raw.stream(chunk_size, decode_content=True)
> except ProtocolError as e:
> > raise ChunkedEncodingError(e)
> E requests.exceptions.ChunkedEncodingError: ('Connection
> broken: IncompleteRead(10 bytes read, 58 more expected)', IncompleteRead(10
> bytes read, 58 more expected))
>
> chunk_size = 131072
> self = <Response [200]>
>
> /usr/lib/python3/dist-packages/requests/models.py:822: ChunkedEncodingError
> ________________________ HttpTest.test_seek_from_start
> _________________________
>
> self = <urllib3.response.HTTPResponse object at 0x7fe8ea5e8820>
>
> @contextmanager
> def _error_catcher(self) -> typing.Generator[None, None, None]:
> """
> Catch low-level python exceptions, instead re-raising urllib3
> variants, so that low-level exceptions are not leaked in the
> high-level api.
>
> On exit, release the connection back to the pool.
> """
> clean_exit = False
>
> try:
> try:
> > yield
>
> clean_exit = False
> self = <urllib3.response.HTTPResponse object at 0x7fe8ea5e8820>
>
> /usr/lib/python3/dist-packages/urllib3/response.py:710:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> self = <urllib3.response.HTTPResponse object at 0x7fe8ea5e8820>, amt = 131072
>
> def _raw_read(
> self,
> amt: int | None = None,
> ) -> bytes:
> """
> Reads `amt` of bytes from the socket.
> """
> if self._fp is None:
> return None # type: ignore[return-value]
>
> fp_closed = getattr(self._fp, "closed", False)
>
> with self._error_catcher():
> data = self._fp_read(amt) if not fp_closed else b""
> if amt is not None and amt != 0 and not data:
> # Platform-specific: Buggy versions of Python.
> # Close the connection when no data is returned
> #
> # This is redundant to what httplib/http.client _should_
> # already do. However, versions of python released before
> # December 15, 2012 (http://bugs.python.org/issue16298) do
> # not properly close the connection in all cases. There is
> # no harm in redundantly calling close.
> self._fp.close()
> if (
> self.enforce_content_length
> and self.length_remaining is not None
> and self.length_remaining != 0
> ):
> # This is an edge case that httplib failed to cover due
> # to concerns of backward compatibility. We're
> # addressing it here to make sure IncompleteRead is
> # raised during streaming, so all calls with incorrect
> # Content-Length are caught.
> > raise IncompleteRead(self._fp_bytes_read,
> > self.length_remaining)
> E urllib3.exceptions.IncompleteRead: IncompleteRead(58
> bytes read, 10 more expected)
>
> amt = 131072
> data = b''
> fp_closed = False
> self = <urllib3.response.HTTPResponse object at 0x7fe8ea5e8820>
>
> /usr/lib/python3/dist-packages/urllib3/response.py:835: IncompleteRead
>
> The above exception was the direct cause of the following exception:
>
> def generate():
> # Special case for urllib3.
> if hasattr(self.raw, "stream"):
> try:
> > yield from self.raw.stream(chunk_size, decode_content=True)
>
> chunk_size = 131072
> self = <Response [200]>
>
> /usr/lib/python3/dist-packages/requests/models.py:820:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
> /usr/lib/python3/dist-packages/urllib3/response.py:936: in stream
> data = self.read(amt=amt, decode_content=decode_content)
> amt = 131072
> decode_content = True
> self = <urllib3.response.HTTPResponse object at 0x7fe8ea5e8820>
> /usr/lib/python3/dist-packages/urllib3/response.py:907: in read
> data = self._raw_read(amt)
> amt = 131072
> cache_content = False
> data = b" hard and got so far but in the end it doesn't even
> matter"
> decode_content = True
> decoded_data = b" hard and got so far but in the end it doesn't even
> matter"
> flush_decoder = False
> self = <urllib3.response.HTTPResponse object at 0x7fe8ea5e8820>
> /usr/lib/python3/dist-packages/urllib3/response.py:813: in _raw_read
> with self._error_catcher():
> amt = 131072
> data = b''
> fp_closed = False
> self = <urllib3.response.HTTPResponse object at 0x7fe8ea5e8820>
> /usr/lib/python3.11/contextlib.py:158: in __exit__
> self.gen.throw(typ, value, traceback)
> self = <contextlib._GeneratorContextManager object at
> 0x7fe8ea582690>
> traceback = <traceback object at 0x7fe8ea5817c0>
> typ = <class 'urllib3.exceptions.IncompleteRead'>
> value = IncompleteRead(58 bytes read, 10 more expected)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> self = <urllib3.response.HTTPResponse object at 0x7fe8ea5e8820>
>
> @contextmanager
> def _error_catcher(self) -> typing.Generator[None, None, None]:
> """
> Catch low-level python exceptions, instead re-raising urllib3
> variants, so that low-level exceptions are not leaked in the
> high-level api.
>
> On exit, release the connection back to the pool.
> """
> clean_exit = False
>
> try:
> try:
> yield
>
> except SocketTimeout as e:
> # FIXME: Ideally we'd like to include the url in the
> ReadTimeoutError but
> # there is yet no clean way to get at it from this context.
> raise ReadTimeoutError(self._pool, None, "Read timed out.")
> from e # type: ignore[arg-type]
>
> except BaseSSLError as e:
> # FIXME: Is there a better way to differentiate between
> SSLErrors?
> if "read operation timed out" not in str(e):
> # SSL errors related to framing/MAC get wrapped and
> reraised here
> raise SSLError(e) from e
>
> raise ReadTimeoutError(self._pool, None, "Read timed out.")
> from e # type: ignore[arg-type]
>
> except (HTTPException, OSError) as e:
> # This includes IncompleteRead.
> > raise ProtocolError(f"Connection broken: {e!r}", e) from e
> E urllib3.exceptions.ProtocolError: ('Connection broken:
> IncompleteRead(58 bytes read, 10 more expected)', IncompleteRead(58 bytes
> read, 10 more expected))
>
> clean_exit = False
> self = <urllib3.response.HTTPResponse object at 0x7fe8ea5e8820>
>
> /usr/lib/python3/dist-packages/urllib3/response.py:727: ProtocolError
>
> During handling of the above exception, another exception occurred:
>
> self = <smart_open.tests.test_http.HttpTest testMethod=test_seek_from_start>
>
> @responses.activate
> def test_seek_from_start(self):
> responses.add_callback(responses.GET, URL, callback=request_callback)
> reader = smart_open.http.SeekableBufferedInputBase(URL)
>
> reader.seek(10)
> self.assertEqual(reader.tell(), 10)
> > read_bytes = reader.read(size=10)
>
> reader = <smart_open.http.SeekableBufferedInputBase object at
> 0x7fe8ea5e8df0>
> self = <smart_open.tests.test_http.HttpTest
> testMethod=test_seek_from_start>
>
> smart_open/tests/test_http.py:61:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
> smart_open/http.py:175: in read
> bytes_read = self._read_buffer.fill(self._read_iter)
> self = <smart_open.http.SeekableBufferedInputBase object at
> 0x7fe8ea5e8df0>
> size = 10
> smart_open/bytebuffer.py:155: in fill
> for more_bytes in source:
> new_bytes = b''
> self = <smart_open.bytebuffer.ByteBuffer object at
> 0x7fe8ea583fd0>
> size = 131072
> source = <generator object
> Response.iter_content.<locals>.generate at 0x7fe8e9f598a0>
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> def generate():
> # Special case for urllib3.
> if hasattr(self.raw, "stream"):
> try:
> yield from self.raw.stream(chunk_size, decode_content=True)
> except ProtocolError as e:
> > raise ChunkedEncodingError(e)
> E requests.exceptions.ChunkedEncodingError: ('Connection
> broken: IncompleteRead(58 bytes read, 10 more expected)', IncompleteRead(58
> bytes read, 10 more expected))
>
> chunk_size = 131072
> self = <Response [200]>
>
> /usr/lib/python3/dist-packages/requests/models.py:822: ChunkedEncodingError
> =============================== warnings summary
> ===============================
> .pybuild/cpython3_3.11_smart-open/build/smart_open/tests/test_http.py: 1
> warning
> .pybuild/cpython3_3.11_smart-open/build/smart_open/tests/test_smart_open.py:
> 10 warnings
> /usr/lib/python3/dist-packages/responses/__init__.py:609:
> DeprecationWarning: stream argument is deprecated. Use stream parameter in
> request directly
> warn(
>
> .pybuild/cpython3_3.11_smart-open/build/smart_open/tests/test_smart_open.py::SmartOpenTest::test_incorrect
> .pybuild/cpython3_3.11_smart-open/build/smart_open/tests/test_smart_open.py::SmartOpenTest::test_incorrect
> .pybuild/cpython3_3.11_smart-open/build/smart_open/tests/test_smart_open.py::SmartOpenTest::test_incorrect
> .pybuild/cpython3_3.11_smart-open/build/smart_open/tests/test_smart_open.py::SmartOpenTest::test_incorrect
>
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_smart-open/build/smart_open/smart_open_lib.py:494:
> DeprecationWarning: This function is deprecated. See
> https://github.com/RaRe-Technologies/smart_open/blob/develop/MIGRATING_FROM_OLDER_VERSIONS.rst
> for more information
> warnings.warn(message, category=DeprecationWarning)
>
> -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
> ============================= slowest 20 durations
> =============================
> 0.60s call
> .pybuild/cpython3_3.11_smart-open/build/smart_open/tests/test_hdfs.py::CliRawInputBaseTest::test_read
> 0.60s call
> .pybuild/cpython3_3.11_smart-open/build/smart_open/tests/test_hdfs.py::CliRawInputBaseTest::test_unzip
> 0.60s call
> .pybuild/cpython3_3.11_smart-open/build/smart_open/tests/test_hdfs.py::CliRawOutputBaseTest::test_write
> 0.60s call
> .pybuild/cpython3_3.11_smart-open/build/smart_open/tests/test_hdfs.py::CliRawOutputBaseTest::test_zip
> 0.57s call
> .pybuild/cpython3_3.11_smart-open/build/smart_open/tests/test_hdfs.py::CliRawInputBaseTest::test_context_manager
> 0.50s call
> .pybuild/cpython3_3.11_smart-open/build/smart_open/tests/test_hdfs.py::CliRawInputBaseTest::test_read_75
> 0.06s call
> .pybuild/cpython3_3.11_smart-open/build/smart_open/tests/test_smart_open.py::SmartOpenHttpTest::test_http_bz2
> 0.05s call
> .pybuild/cpython3_3.11_smart-open/build/smart_open/tests/test_smart_open.py::SmartOpenHttpTest::test_http_bz2_query
> 0.03s call
> .pybuild/cpython3_3.11_smart-open/build/smart_open/tests/test_ssh.py::SSHOpen::test_open
> 0.01s call
> .pybuild/cpython3_3.11_smart-open/build/smart_open/tests/test_smart_open.py::SmartOpenHttpTest::test_http_gz
> 0.01s call
> .pybuild/cpython3_3.11_smart-open/build/smart_open/tests/test_ssh.py::SSHOpen::test_open_with_transport_params
> 0.01s call
> .pybuild/cpython3_3.11_smart-open/build/smart_open/tests/test_smart_open.py::WebHdfsWriteTest::test_write
> 0.01s call
> .pybuild/cpython3_3.11_smart-open/build/smart_open/tests/test_ssh.py::SSHOpen::test_percent_encoding
> 0.01s call
> .pybuild/cpython3_3.11_smart-open/build/smart_open/tests/test_ssh.py::SSHOpen::test_open_with_key_filename
> 0.01s call
> .pybuild/cpython3_3.11_smart-open/build/smart_open/tests/test_ssh.py::SSHOpen::test_open_without_password
>
> (5 durations < 0.005s hidden. Use -vv to show these durations.)
> =========================== short test summary info
> ============================
> FAILED smart_open/tests/test_http.py::HttpTest::test_https_seek_forward -
> req...
> FAILED smart_open/tests/test_http.py::HttpTest::test_seek_from_current -
> requ...
> FAILED smart_open/tests/test_http.py::HttpTest::test_seek_from_end -
> requests...
> FAILED smart_open/tests/test_http.py::HttpTest::test_seek_from_start -
> reques...
> SKIPPED [1] smart_open/tests/test_package.py:18: requires missing dependencies
> SKIPPED [1] smart_open/tests/test_package.py:13: requires missing dependencies
> SKIPPED [1] smart_open/tests/test_package.py:24: requires missing dependencies
> SKIPPED [1] smart_open/tests/test_s3.py:140: The test case needs a Moto
> server running on the local 5000 port.
> SKIPPED [1] smart_open/tests/test_s3.py:418: For Debian skip ReaderTest
> SKIPPED [1] smart_open/tests/test_s3.py:426: For Debian skip ReaderTest
> SKIPPED [1] smart_open/tests/test_s3.py:325: For Debian skip ReaderTest
> SKIPPED [1] smart_open/tests/test_s3.py:228: For Debian skip ReaderTest
> SKIPPED [1] smart_open/tests/test_s3.py:240: For Debian skip ReaderTest
> SKIPPED [1] smart_open/tests/test_s3.py:249: For Debian skip ReaderTest
> SKIPPED [1] smart_open/tests/test_s3.py:395: For Debian skip ReaderTest
> SKIPPED [1] smart_open/tests/test_s3.py:441: For Debian skip ReaderTest
> SKIPPED [1] smart_open/tests/test_s3.py:339: For Debian skip ReaderTest
> SKIPPED [1] smart_open/tests/test_s3.py:368: For Debian skip ReaderTest
> SKIPPED [1] smart_open/tests/test_s3.py:384: For Debian skip ReaderTest
> SKIPPED [1] smart_open/tests/test_s3.py:261: For Debian skip ReaderTest
> SKIPPED [1] smart_open/tests/test_s3.py:291: For Debian skip ReaderTest
> SKIPPED [1] smart_open/tests/test_s3.py:305: For Debian skip ReaderTest
> SKIPPED [1] smart_open/tests/test_s3.py:316: For Debian skip ReaderTest
> SKIPPED [1] smart_open/tests/test_s3.py:279: For Debian skip ReaderTest
> SKIPPED [1] smart_open/tests/test_s3.py:406: For Debian skip ReaderTest
> SKIPPED [1] smart_open/tests/test_s3.py:541: For Debian skip
> MultipartWriterTest
> SKIPPED [1] smart_open/tests/test_s3.py:569: For Debian skip
> MultipartWriterTest
> SKIPPED [1] smart_open/tests/test_s3.py:576: For Debian skip
> MultipartWriterTest
> SKIPPED [1] smart_open/tests/test_s3.py:529: For Debian skip
> MultipartWriterTest
> SKIPPED [1] smart_open/tests/test_s3.py:558: For Debian skip
> MultipartWriterTest
> SKIPPED [1] smart_open/tests/test_s3.py:564: For Debian skip
> MultipartWriterTest
> SKIPPED [1] smart_open/tests/test_s3.py:583: For Debian skip
> MultipartWriterTest
> SKIPPED [1] smart_open/tests/test_s3.py:463: For Debian skip
> MultipartWriterTest
> SKIPPED [1] smart_open/tests/test_s3.py:476: For Debian skip
> MultipartWriterTest
> SKIPPED [1] smart_open/tests/test_s3.py:486: For Debian skip
> MultipartWriterTest
> SKIPPED [1] smart_open/tests/test_s3.py:495: For Debian skip
> MultipartWriterTest
> SKIPPED [1] smart_open/tests/test_s3.py:517: For Debian skip
> MultipartWriterTest
> SKIPPED [1] smart_open/tests/test_s3.py:593: For Debian skip
> MultipartWriterTest
> SKIPPED [1] smart_open/tests/test_s3.py:664: For Debian skip
> SinglepartWriterTest
> SKIPPED [1] smart_open/tests/test_s3.py:687: For Debian skip
> SinglepartWriterTest
> SKIPPED [1] smart_open/tests/test_s3.py:694: For Debian skip
> SinglepartWriterTest
> SKIPPED [1] smart_open/tests/test_s3.py:681: For Debian skip
> SinglepartWriterTest
> SKIPPED [1] smart_open/tests/test_s3.py:619: For Debian skip
> SinglepartWriterTest
> SKIPPED [1] smart_open/tests/test_s3.py:632: For Debian skip
> SinglepartWriterTest
> SKIPPED [1] smart_open/tests/test_s3.py:642: For Debian skip
> SinglepartWriterTest
> SKIPPED [1] smart_open/tests/test_s3.py:653: For Debian skip
> SinglepartWriterTest
> SKIPPED [1] smart_open/tests/test_s3.py:701: For Debian skip
> SinglepartWriterTest
> SKIPPED [1] smart_open/tests/test_s3.py:749: For Debian skip
> SinglepartWriterTest
> SKIPPED [1] smart_open/tests/test_s3.py:737: For Debian skip
> SinglepartWriterTest
> SKIPPED [1] smart_open/tests/test_s3.py:727: For Debian skip
> SinglepartWriterTest
> SKIPPED [1] smart_open/tests/test_s3.py:760: For Debian skip
> SinglepartWriterTest
> SKIPPED [1] smart_open/tests/test_s3.py:769: For Debian skip
> SinglepartWriterTest
> SKIPPED [1] smart_open/tests/test_s3.py:800: For Debian skip this test
> SKIPPED [1] smart_open/tests/test_s3.py:831: For Debian skip this test
> SKIPPED [1] smart_open/tests/test_s3.py:857: For Debian skip
> IterBucketSingleProcessTest
> SKIPPED [1] smart_open/tests/test_s3.py:874: For Debian skip
> IterBucketCredentialsTest
> SKIPPED [1] smart_open/tests/test_s3.py:897: For Debian skip DownloadKeyTest
> SKIPPED [1] smart_open/tests/test_s3.py:904: For Debian skip DownloadKeyTest
> SKIPPED [1] smart_open/tests/test_s3.py:922: For Debian skip DownloadKeyTest
> SKIPPED [1] smart_open/tests/test_s3.py:913: For Debian skip DownloadKeyTest
> SKIPPED [1] smart_open/tests/test_s3.py:932: For Debian skip DownloadKeyTest
> SKIPPED [1] smart_open/tests/test_s3.py:949: For Debian skip OpenTest
> SKIPPED [3]
> ../../../../../../usr/lib/python3/dist-packages/_pytest/unittest.py:378: For
> Debian skip this test
> SKIPPED [1] smart_open/tests/test_s3_version.py:62: For Debian skip
> TestVersionId
> SKIPPED [1] smart_open/tests/test_s3_version.py:68: For Debian skip
> TestVersionId
> SKIPPED [1] smart_open/tests/test_s3_version.py:55: For Debian skip
> TestVersionId
> SKIPPED [1] smart_open/tests/test_s3_version.py:80: For Debian skip
> TestVersionId
> SKIPPED [1] smart_open/tests/test_s3_version.py:74: For Debian skip
> TestVersionId
> SKIPPED [1] smart_open/tests/test_s3_version.py:87: For Debian skip
> TestVersionId
> SKIPPED [1] smart_open/tests/test_s3_version.py:94: For Debian skip
> TestVersionId
> SKIPPED [1] smart_open/tests/test_smart_open.py:721: For Debian skip
> test_read_never_returns_none
> SKIPPED [1] smart_open/tests/test_smart_open.py:832: Skipping
> test_read_newline_binary
> SKIPPED [1] smart_open/tests/test_smart_open.py:774: Skipping
> test_read_newline_cr
> SKIPPED [1] smart_open/tests/test_smart_open.py:804: Skipping
> test_read_newline_crlf
> SKIPPED [1] smart_open/tests/test_smart_open.py:758: Skipping
> test_read_newline_empty
> SKIPPED [1] smart_open/tests/test_smart_open.py:789: Skipping
> test_read_newline_lf
> SKIPPED [1] smart_open/tests/test_smart_open.py:737: Skipping
> test_read_newline_none
> SKIPPED [1] smart_open/tests/test_smart_open.py:818: Skipping
> test_read_newline_slurp
> SKIPPED [1] smart_open/tests/test_smart_open.py:923: For Debian skip
> test_readline
> SKIPPED [1] smart_open/tests/test_smart_open.py:953: For Debian skip
> test_readline_eof
> SKIPPED [1] smart_open/tests/test_smart_open.py:936: For Debian skip
> test_readline_iter
> SKIPPED [1] smart_open/tests/test_smart_open.py:969: For Debian skip
> test_s3_iter_lines
> SKIPPED [1] smart_open/tests/test_smart_open.py:1094: For Debian skip
> test_s3_iter_moto
> SKIPPED [1] smart_open/tests/test_smart_open.py:1127: For Debian skip
> test_s3_read_moto
> SKIPPED [1] smart_open/tests/test_smart_open.py:1145: For Debian skip
> test_s3_seek_moto
> SKIPPED [1] smart_open/tests/test_smart_open.py:1167: For Debian skip
> test_s3_tell
> SKIPPED [1] smart_open/tests/test_smart_open.py:895: Skipping
> test_write_newline_cr
> SKIPPED [1] smart_open/tests/test_smart_open.py:909: Skipping
> test_write_newline_crlf
> SKIPPED [1] smart_open/tests/test_smart_open.py:867: Skipping
> test_write_newline_empty
> SKIPPED [1] smart_open/tests/test_smart_open.py:881: Skipping
> test_write_newline_lf
> SKIPPED [1] smart_open/tests/test_smart_open.py:847: Skipping
> test_write_newline_none
> SKIPPED [1] smart_open/tests/test_smart_open.py:1381: For Debian skip
> test_s3_metadata_write
> SKIPPED [1] smart_open/tests/test_smart_open.py:1361: For Debian skip
> test_s3_modes_moto
> SKIPPED [1] smart_open/tests/test_smart_open.py:1426: For Debian skip
> test_write_bad_encoding_replace
> SKIPPED [1] smart_open/tests/test_smart_open.py:1415: For Debian skip
> test_write_bad_encoding_strict
> SKIPPED [1] smart_open/tests/test_smart_open.py:1688: For Debian skip
> test_gzip_read_mode
> SKIPPED [1] smart_open/tests/test_smart_open.py:1676: For Debian skip
> test_gzip_write_mode
> SKIPPED [1] smart_open/tests/test_smart_open.py:1604: For Debian skip test_r
> SKIPPED [1] smart_open/tests/test_smart_open.py:1705: For Debian skip
> test_read_encoding
> SKIPPED [1] smart_open/tests/test_smart_open.py:1719: For Debian skip
> test_read_encoding_implicit_text
> SKIPPED [1] smart_open/tests/test_smart_open.py:1626: For Debian skip
> test_rw_encoding
> SKIPPED [1] smart_open/tests/test_smart_open.py:1651: For Debian skip
> test_rw_gzip
> SKIPPED [1] smart_open/tests/test_smart_open.py:1761: For Debian skip
> test_write_bad_encoding_replace
> SKIPPED [1] smart_open/tests/test_smart_open.py:1748: For Debian skip
> test_write_bad_encoding_strict
> SKIPPED [1] smart_open/tests/test_smart_open.py:1733: For Debian skip
> test_write_encoding
> SKIPPED [1] smart_open/tests/test_smart_open.py:1777: For Debian skip
> test_write_text_gzip
> =========== 4 failed, 198 passed, 104 skipped, 15 warnings in 5.07s
> ============
> E: pybuild pybuild:389: test: plugin distutils failed with: exit code=1: cd
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_smart-open/build; python3.11 -m
> pytest smart_open/tests
> dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.12
> 3.11" returned exit code 13
The full build log is available from:
http://qa-logs.debian.net/2024/06/15/smart-open_5.2.1-6_unstable.log
All bugs filed during this archive rebuild are listed at:
https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=ftbfs-20240615;users=lu...@debian.org
or:
https://udd.debian.org/bugs/?release=na&merged=ign&fnewerval=7&flastmodval=7&fusertag=only&fusertagtag=ftbfs-20240615&fusertaguser=lu...@debian.org&allbugs=1&cseverity=1&ctags=1&caffected=1#results
A list of current common problems and possible solutions is available at
http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute!
If you reassign this bug to another package, please mark it as 'affects'-ing
this package. See https://www.debian.org/Bugs/server-control#affects
If you fail to reproduce this, please provide a build log and diff it with mine
so that we can identify if something relevant changed in the meantime.
--- End Message ---