falconry / falcon

The no-magic web data plane API and microservices framework for Python developers, with a focus on reliability, correctness, and performance at scale.
https://falcon.readthedocs.io/en/stable/
Apache License 2.0
9.51k stars 937 forks source link

CPython 3.13 support #2258

Closed vytas7 closed 1 month ago

vytas7 commented 1 month ago

Formalize CPython 3.13 support:

vytas7 commented 1 month ago

One interesting warning that is not identified on other CPython versions is:

tests/test_static.py::test_bad_path[asgi-/static/something..]
  /tmp/falcon/.tox/mintest/lib/python3.13/site-packages/_pytest/unraisableexception.py:85: PytestUnraisableExceptionWarning: Exception ignored in: <test_hello.NonClosingBytesIO object at 0x71d48835e390>

  Traceback (most recent call last):
    File "/tmp/falcon/.tox/mintest/lib/python3.13/site-packages/coverage/collector.py", line 250, in lock_data
      def lock_data(self) -> None:

  TypeError: 'bool' object is not callable

    warnings.warn(pytest.PytestUnraisableExceptionWarning(msg))

It seems it is raised non-deterministically in one of the affected tests, but always traces back to test_hello.py. I'll investigate.

Besides that, there a couple of asyncio warnings about the aclose() coroutine never getting called, but it may be that they were just emitted to stderr before (we do some text after the text in some cases), but not propagated as a real warning.