Hi Joseph,

I'm building s3ql on debian trixie, and I'm getting the following test failure, any advice much appreciated! […]

Is this a persistent error? Re-running the tests multiple times, do you always get the error?

We currently do not run tests with Python 3.13, and it looks like the Python 3.13 "ssl" package has changes that we need to address.

But when I run the tests with Python 3.13 (on Ubuntu 24.04 with uv, main-branch), I only get some warnings, not the error you get:

$ uv venv --python 3.13
$ source .venv/bin/activate
$ uv sync --extra dev
$ PYTHONTRACEMALLOC=20  py.test tests/t0_http.py
# […]
============== warnings summary ==============
t0_http.py::test_read_text[plain]
t0_http.py::test_read_text[ssl]
/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/unraisableexception.py:67: PytestUnraisableExceptionWarning: Exception ignored in: <_io.TextIOWrapper encoding='UTF-8'>

  AttributeError: 'HTTPConnection' object has no attribute 'flush'

  During handling of the above exception, another exception occurred:

  Traceback (most recent call last):
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/python.py", line 157, in pytest_pyfunc_call
      result = testfunction(**testargs)
  AttributeError: 'HTTPConnection' object has no attribute 'close'. Did you mean: 'closed'?


  Object allocated at:
    File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_callers.py", line 121
      res = hook_impl.function(*args)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/main.py", line 367       item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem)     File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_hooks.py", line 512       return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)     File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_manager.py", line 120
      return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_callers.py", line 121
      res = hook_impl.function(*args)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/runner.py", line 117
      runtestprotocol(item, nextitem=nextitem)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/runner.py", line 136
      reports.append(call_and_report(item, "call", log))
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/runner.py", line 245
      call = CallInfo.from_call(
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/runner.py", line 344
      result: TResult | None = func()
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/runner.py", line 246
      lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise
    File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_hooks.py", line 512       return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)     File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_manager.py", line 120
      return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_callers.py", line 121
      res = hook_impl.function(*args)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/runner.py", line 178
      item.runtest()
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/python.py", line 1671
      self.ihook.pytest_pyfunc_call(pyfuncitem=self)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_hooks.py", line 512       return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)     File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_manager.py", line 120
      return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_callers.py", line 121
      res = hook_impl.function(*args)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/python.py", line 157
      result = testfunction(**testargs)
    File "/s3ql-source/tests/t0_http.py", line 486
      fh = TextIOWrapper(conn)
    warnings.warn(pytest.PytestUnraisableExceptionWarning(msg))

t0_http.py::test_read_text2[plain]
t0_http.py::test_read_text2[ssl]
/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/unraisableexception.py:67: PytestUnraisableExceptionWarning: Exception ignored in: <_io.TextIOWrapper encoding='UTF-8'>

  AttributeError: 'HTTPConnection' object has no attribute 'flush'

  During handling of the above exception, another exception occurred:

  Traceback (most recent call last):
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/python.py", line 157, in pytest_pyfunc_call
      result = testfunction(**testargs)
  AttributeError: 'HTTPConnection' object has no attribute 'close'. Did you mean: 'closed'?


  Object allocated at:
    File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_callers.py", line 121
      res = hook_impl.function(*args)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/main.py", line 367       item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem)     File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_hooks.py", line 512       return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)     File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_manager.py", line 120
      return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_callers.py", line 121
      res = hook_impl.function(*args)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/runner.py", line 117
      runtestprotocol(item, nextitem=nextitem)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/runner.py", line 136
      reports.append(call_and_report(item, "call", log))
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/runner.py", line 245
      call = CallInfo.from_call(
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/runner.py", line 344
      result: TResult | None = func()
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/runner.py", line 246
      lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise
    File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_hooks.py", line 512       return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)     File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_manager.py", line 120
      return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_callers.py", line 121
      res = hook_impl.function(*args)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/runner.py", line 178
      item.runtest()
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/python.py", line 1671
      self.ihook.pytest_pyfunc_call(pyfuncitem=self)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_hooks.py", line 512       return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)     File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_manager.py", line 120
      return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_callers.py", line 121
      res = hook_impl.function(*args)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/python.py", line 157
      result = testfunction(**testargs)
    File "/s3ql-source/tests/t0_http.py", line 494
      fh = TextIOWrapper(conn)
    warnings.warn(pytest.PytestUnraisableExceptionWarning(msg))

t0_http.py::test_read_text3[plain]
t0_http.py::test_read_text3[ssl]
/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/unraisableexception.py:67: PytestUnraisableExceptionWarning: Exception ignored in: <_io.TextIOWrapper encoding='UTF-8'>

  AttributeError: 'HTTPConnection' object has no attribute 'flush'

  During handling of the above exception, another exception occurred:

  Traceback (most recent call last):
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/python.py", line 157, in pytest_pyfunc_call
      result = testfunction(**testargs)
  AttributeError: 'HTTPConnection' object has no attribute 'close'. Did you mean: 'closed'?


  Object allocated at:
    File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_callers.py", line 121
      res = hook_impl.function(*args)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/main.py", line 367       item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem)     File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_hooks.py", line 512       return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)     File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_manager.py", line 120
      return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_callers.py", line 121
      res = hook_impl.function(*args)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/runner.py", line 117
      runtestprotocol(item, nextitem=nextitem)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/runner.py", line 136
      reports.append(call_and_report(item, "call", log))
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/runner.py", line 245
      call = CallInfo.from_call(
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/runner.py", line 344
      result: TResult | None = func()
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/runner.py", line 246
      lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise
    File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_hooks.py", line 512       return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)     File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_manager.py", line 120
      return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_callers.py", line 121
      res = hook_impl.function(*args)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/runner.py", line 178
      item.runtest()
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/python.py", line 1671
      self.ihook.pytest_pyfunc_call(pyfuncitem=self)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_hooks.py", line 512       return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)     File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_manager.py", line 120
      return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_callers.py", line 121
      res = hook_impl.function(*args)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/python.py", line 157
      result = testfunction(**testargs)
    File "/s3ql-source/tests/t0_http.py", line 503
      fh = TextIOWrapper(conn)
    warnings.warn(pytest.PytestUnraisableExceptionWarning(msg))




Until we address Python 3.13 compatibility issues, you might want to install S3QL inside a venv with Python 3.12.

--
You received this message because you are subscribed to the Google Groups 
"s3ql" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/d/msgid/s3ql/c533813d-1dd5-460b-8de3-9659dd18849e%40jagszent.de.

Reply via email to