Skip to content

test failures with pytest 8.4+ #1159

@hrnciar

Description

@hrnciar

Description

Since pytest 8.4+ plenty of tests started to fail. I think it's related to:

#11372: Async tests will now fail, instead of warning+skipping, if you don’t have any suitable plugin installed.

=================================== FAILURES ===================================
_____________________ test_listeners[bash-language-server] _____________________

fut = <_GatheringFuture finished exception=CancelledError()>, timeout = 20

    async def wait_for(fut, timeout):
        """Wait for the single Future or coroutine to complete, with timeout.
    
        Coroutine will be wrapped in Task.
    
        Returns result of the Future or coroutine.  When a timeout occurs,
        it cancels the task and raises TimeoutError.  To avoid the task
        cancellation, wrap it in shield().
    
        If the wait is cancelled, the task is also cancelled.
    
        If the task suppresses the cancellation and returns a value instead,
        that value is returned.
    
        This function is a coroutine.
        """
        # The special case for timeout <= 0 is for the following case:
        #
        # async def test_waitfor():
        #     func_started = False
        #
        #     async def func():
        #         nonlocal func_started
        #         func_started = True
        #
        #     try:
        #         await asyncio.wait_for(func(), 0)
        #     except asyncio.TimeoutError:
        #         assert not func_started
        #     else:
        #         assert False
        #
        # asyncio.run(test_waitfor())
    
    
        if timeout is not None and timeout <= 0:
            fut = ensure_future(fut)
    
            if fut.done():
                return fut.result()
    
            await _cancel_and_wait(fut)
            try:
                return fut.result()
            except exceptions.CancelledError as exc:
                raise TimeoutError from exc
    
        async with timeouts.timeout(timeout):
>           return await fut
                   ^^^^^^^^^
E           asyncio.exceptions.CancelledError

/usr/lib64/python3.14/asyncio/tasks.py:488: CancelledError

The above exception was the direct cause of the following exception:

known_server = 'bash-language-server'
handlers = (<jupyter_lsp.tests.conftest.MockHandler object at 0x7f0ad75231d0>, <jupyter_lsp.tests.conftest.MockWebsocketHandler object at 0x7f0ad7522e70>)
jsonrpc_init_msg = '{"id": 0, "jsonrpc": "2.0", "method": "initialize", "params": {"capabilities": {"workspace": {"didChangeConfiguration...//builddir/build/BUILD/python-jupyter-lsp-2.3.0-build/jupyter_lsp-2.3.0/jupyter_lsp/tests", "workspaceFolders": null}}'

    @pytest.mark.asyncio
    async def test_listeners(known_server, handlers, jsonrpc_init_msg):
        """will some listeners listen?"""
        handler, ws_handler = handlers
        manager = handler.manager
    
        manager.all_listeners = ["jupyter_lsp.tests.listener.dummy_listener"]
    
        manager.initialize()
        manager._listeners["client"] = []  # hide predefined client listeners
    
        assert len(manager._listeners["all"]) == 1
    
        dummy_listener = manager._listeners["all"][0]
        assert re.match(
            (
                "<MessageListener listener=<function dummy_listener at .*?>,"
                " method=None, language_server=None>"
            ),
            repr(dummy_listener),
        )
    
        handler_listened = Queue()
        server_listened = Queue()
        all_listened = Queue()
    
        # some client listeners
        @lsp_message_listener("client", language_server=known_server, method="initialize")
        async def client_listener(scope, message, language_server, manager):
            await handler_listened.put(message)
    
        @lsp_message_listener("client", method=r"not-a-method")
        async def other_client_listener(
            scope, message, language_server, manager
        ):  # pragma: no cover
            await handler_listened.put(message)
            raise NotImplementedError("shouldn't get here")
    
        # some server listeners
        @lsp_message_listener("server", language_server=None, method=None)
        async def server_listener(scope, message, language_server, manager):
            await server_listened.put(message)
    
        @lsp_message_listener("server", language_server=r"not-a-language-server")
        async def other_server_listener(
            scope, message, language_server, manager
        ):  # pragma: no cover
            await handler_listened.put(message)
            raise NotImplementedError("shouldn't get here")
    
        # an all listener
        @lsp_message_listener("all")
        async def all_listener(
            scope, message, language_server, manager
        ):  # pragma: no cover
            await all_listened.put(message)
    
        assert len(manager._listeners["server"]) == 2
        assert len(manager._listeners["client"]) == 2
        assert len(manager._listeners["all"]) == 2
    
        await ws_handler.open(known_server)
    
        await ws_handler.on_message(jsonrpc_init_msg)
    
>       results = await asyncio.wait_for(
            asyncio.gather(
                handler_listened.get(),
                server_listened.get(),
                all_listened.get(),
                all_listened.get(),
                return_exceptions=True,
            ),
            240 if known_server == "julia-language-server" else 20,
        )

jupyter_lsp/tests/test_listener.py:86: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib64/python3.14/asyncio/tasks.py:487: in wait_for
    async with timeouts.timeout(timeout):
               ^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <Timeout [expired]>
exc_type = <class 'asyncio.exceptions.CancelledError'>
exc_val = CancelledError(), exc_tb = <traceback object at 0x7f0ad73ff940>

    async def __aexit__(
        self,
        exc_type: type[BaseException] | None,
        exc_val: BaseException | None,
        exc_tb: TracebackType | None,
    ) -> bool | None:
        assert self._state in (_State.ENTERED, _State.EXPIRING)
    
        if self._timeout_handler is not None:
            self._timeout_handler.cancel()
            self._timeout_handler = None
    
        if self._state is _State.EXPIRING:
            self._state = _State.EXPIRED
    
            if self._task.uncancel() <= self._cancelling and exc_type is not None:
                # Since there are no new cancel requests, we're
                # handling this.
                if issubclass(exc_type, exceptions.CancelledError):
>                   raise TimeoutError from exc_val
E                   TimeoutError

/usr/lib64/python3.14/asyncio/timeouts.py:114: TimeoutError
------------------------------ Captured log call -------------------------------
ERROR    traitlets:manager.py:200 [bash-language-server] no session: handler subscription failed
ERROR    traitlets:manager.py:216 [bash-language-server] no session: client message dropped
______________ test_listeners[dockerfile-language-server-nodejs] _______________

known_server = 'dockerfile-language-server-nodejs'
handlers = (<jupyter_lsp.tests.conftest.MockHandler object at 0x7f0ad73f4f30>, <jupyter_lsp.tests.conftest.MockWebsocketHandler object at 0x7f0ad73f5150>)
jsonrpc_init_msg = '{"id": 0, "jsonrpc": "2.0", "method": "initialize", "params": {"capabilities": {"workspace": {"didChangeConfiguration...//builddir/build/BUILD/python-jupyter-lsp-2.3.0-build/jupyter_lsp-2.3.0/jupyter_lsp/tests", "workspaceFolders": null}}'

    @pytest.mark.asyncio
    async def test_listeners(known_server, handlers, jsonrpc_init_msg):
        """will some listeners listen?"""
        handler, ws_handler = handlers
        manager = handler.manager
    
        manager.all_listeners = ["jupyter_lsp.tests.listener.dummy_listener"]
    
        manager.initialize()
        manager._listeners["client"] = []  # hide predefined client listeners
    
>       assert len(manager._listeners["all"]) == 1
E       assert 2 == 1
E        +  where 2 = len([<MessageListener listener=<function test_listeners.<locals>.all_listener at 0x7f0ad7572fb0>, method=None, language_server=None>, <MessageListener listener=<function dummy_listener at 0x7f0ad759c5c0>, method=None, language_server=None>])

jupyter_lsp/tests/test_listener.py:32: AssertionError
____________________________ test_listeners[pylsp] _____________________________

known_server = 'pylsp'
handlers = (<jupyter_lsp.tests.conftest.MockHandler object at 0x7f0ad73f4160>, <jupyter_lsp.tests.conftest.MockWebsocketHandler object at 0x7f0ad73f4050>)
jsonrpc_init_msg = '{"id": 0, "jsonrpc": "2.0", "method": "initialize", "params": {"capabilities": {"workspace": {"didChangeConfiguration...//builddir/build/BUILD/python-jupyter-lsp-2.3.0-build/jupyter_lsp-2.3.0/jupyter_lsp/tests", "workspaceFolders": null}}'

    @pytest.mark.asyncio
    async def test_listeners(known_server, handlers, jsonrpc_init_msg):
        """will some listeners listen?"""
        handler, ws_handler = handlers
        manager = handler.manager
    
        manager.all_listeners = ["jupyter_lsp.tests.listener.dummy_listener"]
    
        manager.initialize()
        manager._listeners["client"] = []  # hide predefined client listeners
    
>       assert len(manager._listeners["all"]) == 1
E       assert 2 == 1
E        +  where 2 = len([<MessageListener listener=<function test_listeners.<locals>.all_listener at 0x7f0ad7572fb0>, method=None, language_server=None>, <MessageListener listener=<function dummy_listener at 0x7f0ad759c5c0>, method=None, language_server=None>])

jupyter_lsp/tests/test_listener.py:32: AssertionError
_____________________ test_listeners[sql-language-server] ______________________

known_server = 'sql-language-server'
handlers = (<jupyter_lsp.tests.conftest.MockHandler object at 0x7f0ad7478a50>, <jupyter_lsp.tests.conftest.MockWebsocketHandler object at 0x7f0ad7478850>)
jsonrpc_init_msg = '{"id": 0, "jsonrpc": "2.0", "method": "initialize", "params": {"capabilities": {"workspace": {"didChangeConfiguration...//builddir/build/BUILD/python-jupyter-lsp-2.3.0-build/jupyter_lsp-2.3.0/jupyter_lsp/tests", "workspaceFolders": null}}'

    @pytest.mark.asyncio
    async def test_listeners(known_server, handlers, jsonrpc_init_msg):
        """will some listeners listen?"""
        handler, ws_handler = handlers
        manager = handler.manager
    
        manager.all_listeners = ["jupyter_lsp.tests.listener.dummy_listener"]
    
        manager.initialize()
        manager._listeners["client"] = []  # hide predefined client listeners
    
>       assert len(manager._listeners["all"]) == 1
E       assert 2 == 1
E        +  where 2 = len([<MessageListener listener=<function test_listeners.<locals>.all_listener at 0x7f0ad7572fb0>, method=None, language_server=None>, <MessageListener listener=<function dummy_listener at 0x7f0ad759c5c0>, method=None, language_server=None>])

jupyter_lsp/tests/test_listener.py:32: AssertionError
__________________ test_listeners[typescript-language-server] __________________

known_server = 'typescript-language-server'
handlers = (<jupyter_lsp.tests.conftest.MockHandler object at 0x7f0ad7479650>, <jupyter_lsp.tests.conftest.MockWebsocketHandler object at 0x7f0ad7479450>)
jsonrpc_init_msg = '{"id": 0, "jsonrpc": "2.0", "method": "initialize", "params": {"capabilities": {"workspace": {"didChangeConfiguration...//builddir/build/BUILD/python-jupyter-lsp-2.3.0-build/jupyter_lsp-2.3.0/jupyter_lsp/tests", "workspaceFolders": null}}'

    @pytest.mark.asyncio
    async def test_listeners(known_server, handlers, jsonrpc_init_msg):
        """will some listeners listen?"""
        handler, ws_handler = handlers
        manager = handler.manager
    
        manager.all_listeners = ["jupyter_lsp.tests.listener.dummy_listener"]
    
        manager.initialize()
        manager._listeners["client"] = []  # hide predefined client listeners
    
>       assert len(manager._listeners["all"]) == 1
E       assert 2 == 1
E        +  where 2 = len([<MessageListener listener=<function test_listeners.<locals>.all_listener at 0x7f0ad7572fb0>, method=None, language_server=None>, <MessageListener listener=<function dummy_listener at 0x7f0ad759c5c0>, method=None, language_server=None>])

jupyter_lsp/tests/test_listener.py:32: AssertionError
___________________ test_listeners[unified-language-server] ____________________

known_server = 'unified-language-server'
handlers = (<jupyter_lsp.tests.conftest.MockHandler object at 0x7f0ad73fb980>, <jupyter_lsp.tests.conftest.MockWebsocketHandler object at 0x7f0ad73fbc50>)
jsonrpc_init_msg = '{"id": 0, "jsonrpc": "2.0", "method": "initialize", "params": {"capabilities": {"workspace": {"didChangeConfiguration...//builddir/build/BUILD/python-jupyter-lsp-2.3.0-build/jupyter_lsp-2.3.0/jupyter_lsp/tests", "workspaceFolders": null}}'

    @pytest.mark.asyncio
    async def test_listeners(known_server, handlers, jsonrpc_init_msg):
        """will some listeners listen?"""
        handler, ws_handler = handlers
        manager = handler.manager
    
        manager.all_listeners = ["jupyter_lsp.tests.listener.dummy_listener"]
    
        manager.initialize()
        manager._listeners["client"] = []  # hide predefined client listeners
    
>       assert len(manager._listeners["all"]) == 1
E       assert 2 == 1
E        +  where 2 = len([<MessageListener listener=<function test_listeners.<locals>.all_listener at 0x7f0ad7572fb0>, method=None, language_server=None>, <MessageListener listener=<function dummy_listener at 0x7f0ad759c5c0>, method=None, language_server=None>])

jupyter_lsp/tests/test_listener.py:32: AssertionError
________________ test_listeners[vscode-css-languageserver-bin] _________________

known_server = 'vscode-css-languageserver-bin'
handlers = (<jupyter_lsp.tests.conftest.MockHandler object at 0x7f0ad73fa4e0>, <jupyter_lsp.tests.conftest.MockWebsocketHandler object at 0x7f0ad73fae40>)
jsonrpc_init_msg = '{"id": 0, "jsonrpc": "2.0", "method": "initialize", "params": {"capabilities": {"workspace": {"didChangeConfiguration...//builddir/build/BUILD/python-jupyter-lsp-2.3.0-build/jupyter_lsp-2.3.0/jupyter_lsp/tests", "workspaceFolders": null}}'

    @pytest.mark.asyncio
    async def test_listeners(known_server, handlers, jsonrpc_init_msg):
        """will some listeners listen?"""
        handler, ws_handler = handlers
        manager = handler.manager
    
        manager.all_listeners = ["jupyter_lsp.tests.listener.dummy_listener"]
    
        manager.initialize()
        manager._listeners["client"] = []  # hide predefined client listeners
    
>       assert len(manager._listeners["all"]) == 1
E       assert 2 == 1
E        +  where 2 = len([<MessageListener listener=<function test_listeners.<locals>.all_listener at 0x7f0ad7572fb0>, method=None, language_server=None>, <MessageListener listener=<function dummy_listener at 0x7f0ad759c5c0>, method=None, language_server=None>])

jupyter_lsp/tests/test_listener.py:32: AssertionError
________________ test_listeners[vscode-html-languageserver-bin] ________________

known_server = 'vscode-html-languageserver-bin'
handlers = (<jupyter_lsp.tests.conftest.MockHandler object at 0x7f0ad7444ad0>, <jupyter_lsp.tests.conftest.MockWebsocketHandler object at 0x7f0ad74449f0>)
jsonrpc_init_msg = '{"id": 0, "jsonrpc": "2.0", "method": "initialize", "params": {"capabilities": {"workspace": {"didChangeConfiguration...//builddir/build/BUILD/python-jupyter-lsp-2.3.0-build/jupyter_lsp-2.3.0/jupyter_lsp/tests", "workspaceFolders": null}}'

    @pytest.mark.asyncio
    async def test_listeners(known_server, handlers, jsonrpc_init_msg):
        """will some listeners listen?"""
        handler, ws_handler = handlers
        manager = handler.manager
    
        manager.all_listeners = ["jupyter_lsp.tests.listener.dummy_listener"]
    
        manager.initialize()
        manager._listeners["client"] = []  # hide predefined client listeners
    
>       assert len(manager._listeners["all"]) == 1
E       assert 2 == 1
E        +  where 2 = len([<MessageListener listener=<function test_listeners.<locals>.all_listener at 0x7f0ad7572fb0>, method=None, language_server=None>, <MessageListener listener=<function dummy_listener at 0x7f0ad759c5c0>, method=None, language_server=None>])

jupyter_lsp/tests/test_listener.py:32: AssertionError
________________ test_listeners[vscode-json-languageserver-bin] ________________

known_server = 'vscode-json-languageserver-bin'
handlers = (<jupyter_lsp.tests.conftest.MockHandler object at 0x7f0ad74450f0>, <jupyter_lsp.tests.conftest.MockWebsocketHandler object at 0x7f0ad7445010>)
jsonrpc_init_msg = '{"id": 0, "jsonrpc": "2.0", "method": "initialize", "params": {"capabilities": {"workspace": {"didChangeConfiguration...//builddir/build/BUILD/python-jupyter-lsp-2.3.0-build/jupyter_lsp-2.3.0/jupyter_lsp/tests", "workspaceFolders": null}}'

    @pytest.mark.asyncio
    async def test_listeners(known_server, handlers, jsonrpc_init_msg):
        """will some listeners listen?"""
        handler, ws_handler = handlers
        manager = handler.manager
    
        manager.all_listeners = ["jupyter_lsp.tests.listener.dummy_listener"]
    
        manager.initialize()
        manager._listeners["client"] = []  # hide predefined client listeners
    
>       assert len(manager._listeners["all"]) == 1
E       assert 2 == 1
E        +  where 2 = len([<MessageListener listener=<function test_listeners.<locals>.all_listener at 0x7f0ad7572fb0>, method=None, language_server=None>, <MessageListener listener=<function dummy_listener at 0x7f0ad759c5c0>, method=None, language_server=None>])

jupyter_lsp/tests/test_listener.py:32: AssertionError
_____________________ test_listeners[yaml-language-server] _____________________

known_server = 'yaml-language-server'
handlers = (<jupyter_lsp.tests.conftest.MockHandler object at 0x7f0ad757e750>, <jupyter_lsp.tests.conftest.MockWebsocketHandler object at 0x7f0ad757fd40>)
jsonrpc_init_msg = '{"id": 0, "jsonrpc": "2.0", "method": "initialize", "params": {"capabilities": {"workspace": {"didChangeConfiguration...//builddir/build/BUILD/python-jupyter-lsp-2.3.0-build/jupyter_lsp-2.3.0/jupyter_lsp/tests", "workspaceFolders": null}}'

    @pytest.mark.asyncio
    async def test_listeners(known_server, handlers, jsonrpc_init_msg):
        """will some listeners listen?"""
        handler, ws_handler = handlers
        manager = handler.manager
    
        manager.all_listeners = ["jupyter_lsp.tests.listener.dummy_listener"]
    
        manager.initialize()
        manager._listeners["client"] = []  # hide predefined client listeners
    
>       assert len(manager._listeners["all"]) == 1
E       assert 2 == 1
E        +  where 2 = len([<MessageListener listener=<function test_listeners.<locals>.all_listener at 0x7f0ad7572fb0>, method=None, language_server=None>, <MessageListener listener=<function dummy_listener at 0x7f0ad759c5c0>, method=None, language_server=None>])

jupyter_lsp/tests/test_listener.py:32: AssertionError
____________________ test_start_known[bash-language-server] ____________________

known_server = 'bash-language-server'
handlers = (<jupyter_lsp.tests.conftest.MockHandler object at 0x7f0ad76cae10>, <jupyter_lsp.tests.conftest.MockWebsocketHandler object at 0x7f0ad76c9f10>)
jsonrpc_init_msg = '{"id": 0, "jsonrpc": "2.0", "method": "initialize", "params": {"capabilities": {"workspace": {"didChangeConfiguration...//builddir/build/BUILD/python-jupyter-lsp-2.3.0-build/jupyter_lsp-2.3.0/jupyter_lsp/tests", "workspaceFolders": null}}'

    @pytest.mark.asyncio
    async def test_start_known(known_server, handlers, jsonrpc_init_msg):
        """will a process start for a known server if a handler starts?"""
        handler, ws_handler = handlers
        manager = handler.manager
    
        manager.initialize()
    
>       await assert_status_set(handler, {"not_started"})

jupyter_lsp/tests/test_session.py:32: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

handler = <jupyter_lsp.tests.conftest.MockHandler object at 0x7f0ad76cae10>
expected_statuses = {'not_started'}, language_server = None

    async def assert_status_set(handler, expected_statuses, language_server=None):
        await handler.get()
        payload = handler._payload
    
        errors = list(SERVERS_RESPONSE.iter_errors(payload))
        assert not errors
    
        statuses = {
            session["status"]
            for session_server, session in payload["sessions"].items()
            if language_server is None or language_server == session_server
        }
>       assert statuses == expected_statuses, payload
E       AssertionError: {'sessions': {}, 'specs': {'basedpyright': {'argv': [''], 'config_schema': {'$schema': 'http://json-schema.org/draft-0...conda install -c conda-forge pyrefly', 'pip': 'pip install pyrefly', 'uv': 'uv add pyrefly'}, ...}, ...}, 'version': 2}
E       assert set() == {'not_started'}
E         
E         Extra items in the right set:
E         'not_started'
E         Use -v to get more diff

jupyter_lsp/tests/test_session.py:21: AssertionError
_____________ test_start_known[dockerfile-language-server-nodejs] ______________

known_server = 'dockerfile-language-server-nodejs'
handlers = (<jupyter_lsp.tests.conftest.MockHandler object at 0x7f0ad76cb050>, <jupyter_lsp.tests.conftest.MockWebsocketHandler object at 0x7f0ad76ca150>)
jsonrpc_init_msg = '{"id": 0, "jsonrpc": "2.0", "method": "initialize", "params": {"capabilities": {"workspace": {"didChangeConfiguration...//builddir/build/BUILD/python-jupyter-lsp-2.3.0-build/jupyter_lsp-2.3.0/jupyter_lsp/tests", "workspaceFolders": null}}'

    @pytest.mark.asyncio
    async def test_start_known(known_server, handlers, jsonrpc_init_msg):
        """will a process start for a known server if a handler starts?"""
        handler, ws_handler = handlers
        manager = handler.manager
    
        manager.initialize()
    
>       await assert_status_set(handler, {"not_started"})

jupyter_lsp/tests/test_session.py:32: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

handler = <jupyter_lsp.tests.conftest.MockHandler object at 0x7f0ad76cb050>
expected_statuses = {'not_started'}, language_server = None

    async def assert_status_set(handler, expected_statuses, language_server=None):
        await handler.get()
        payload = handler._payload
    
        errors = list(SERVERS_RESPONSE.iter_errors(payload))
        assert not errors
    
        statuses = {
            session["status"]
            for session_server, session in payload["sessions"].items()
            if language_server is None or language_server == session_server
        }
>       assert statuses == expected_statuses, payload
E       AssertionError: {'sessions': {}, 'specs': {'basedpyright': {'argv': [''], 'config_schema': {'$schema': 'http://json-schema.org/draft-0...conda install -c conda-forge pyrefly', 'pip': 'pip install pyrefly', 'uv': 'uv add pyrefly'}, ...}, ...}, 'version': 2}
E       assert set() == {'not_started'}
E         
E         Extra items in the right set:
E         'not_started'
E         Use -v to get more diff

jupyter_lsp/tests/test_session.py:21: AssertionError
___________________________ test_start_known[pylsp] ____________________________

known_server = 'pylsp'
handlers = (<jupyter_lsp.tests.conftest.MockHandler object at 0x7f0ad744fc20>, <jupyter_lsp.tests.conftest.MockWebsocketHandler object at 0x7f0ad759df40>)
jsonrpc_init_msg = '{"id": 0, "jsonrpc": "2.0", "method": "initialize", "params": {"capabilities": {"workspace": {"didChangeConfiguration...//builddir/build/BUILD/python-jupyter-lsp-2.3.0-build/jupyter_lsp-2.3.0/jupyter_lsp/tests", "workspaceFolders": null}}'

    @pytest.mark.asyncio
    async def test_start_known(known_server, handlers, jsonrpc_init_msg):
        """will a process start for a known server if a handler starts?"""
        handler, ws_handler = handlers
        manager = handler.manager
    
        manager.initialize()
    
>       await assert_status_set(handler, {"not_started"})

jupyter_lsp/tests/test_session.py:32: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

handler = <jupyter_lsp.tests.conftest.MockHandler object at 0x7f0ad744fc20>
expected_statuses = {'not_started'}, language_server = None

    async def assert_status_set(handler, expected_statuses, language_server=None):
        await handler.get()
        payload = handler._payload
    
        errors = list(SERVERS_RESPONSE.iter_errors(payload))
        assert not errors
    
        statuses = {
            session["status"]
            for session_server, session in payload["sessions"].items()
            if language_server is None or language_server == session_server
        }
>       assert statuses == expected_statuses, payload
E       AssertionError: {'sessions': {}, 'specs': {'basedpyright': {'argv': [''], 'config_schema': {'$schema': 'http://json-schema.org/draft-0...conda install -c conda-forge pyrefly', 'pip': 'pip install pyrefly', 'uv': 'uv add pyrefly'}, ...}, ...}, 'version': 2}
E       assert set() == {'not_started'}
E         
E         Extra items in the right set:
E         'not_started'
E         Use -v to get more diff

jupyter_lsp/tests/test_session.py:21: AssertionError
____________________ test_start_known[sql-language-server] _____________________

known_server = 'sql-language-server'
handlers = (<jupyter_lsp.tests.conftest.MockHandler object at 0x7f0ad744f070>, <jupyter_lsp.tests.conftest.MockWebsocketHandler object at 0x7f0ad744efc0>)
jsonrpc_init_msg = '{"id": 0, "jsonrpc": "2.0", "method": "initialize", "params": {"capabilities": {"workspace": {"didChangeConfiguration...//builddir/build/BUILD/python-jupyter-lsp-2.3.0-build/jupyter_lsp-2.3.0/jupyter_lsp/tests", "workspaceFolders": null}}'

    @pytest.mark.asyncio
    async def test_start_known(known_server, handlers, jsonrpc_init_msg):
        """will a process start for a known server if a handler starts?"""
        handler, ws_handler = handlers
        manager = handler.manager
    
        manager.initialize()
    
>       await assert_status_set(handler, {"not_started"})

jupyter_lsp/tests/test_session.py:32: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

handler = <jupyter_lsp.tests.conftest.MockHandler object at 0x7f0ad744f070>
expected_statuses = {'not_started'}, language_server = None

    async def assert_status_set(handler, expected_statuses, language_server=None):
        await handler.get()
        payload = handler._payload
    
        errors = list(SERVERS_RESPONSE.iter_errors(payload))
        assert not errors
    
        statuses = {
            session["status"]
            for session_server, session in payload["sessions"].items()
            if language_server is None or language_server == session_server
        }
>       assert statuses == expected_statuses, payload
E       AssertionError: {'sessions': {}, 'specs': {'basedpyright': {'argv': [''], 'config_schema': {'$schema': 'http://json-schema.org/draft-0...conda install -c conda-forge pyrefly', 'pip': 'pip install pyrefly', 'uv': 'uv add pyrefly'}, ...}, ...}, 'version': 2}
E       assert set() == {'not_started'}
E         
E         Extra items in the right set:
E         'not_started'
E         Use -v to get more diff

jupyter_lsp/tests/test_session.py:21: AssertionError
_________________ test_start_known[typescript-language-server] _________________

known_server = 'typescript-language-server'
handlers = (<jupyter_lsp.tests.conftest.MockHandler object at 0x7f0ad747d810>, <jupyter_lsp.tests.conftest.MockWebsocketHandler object at 0x7f0ad747d770>)
jsonrpc_init_msg = '{"id": 0, "jsonrpc": "2.0", "method": "initialize", "params": {"capabilities": {"workspace": {"didChangeConfiguration...//builddir/build/BUILD/python-jupyter-lsp-2.3.0-build/jupyter_lsp-2.3.0/jupyter_lsp/tests", "workspaceFolders": null}}'

    @pytest.mark.asyncio
    async def test_start_known(known_server, handlers, jsonrpc_init_msg):
        """will a process start for a known server if a handler starts?"""
        handler, ws_handler = handlers
        manager = handler.manager
    
        manager.initialize()
    
>       await assert_status_set(handler, {"not_started"})

jupyter_lsp/tests/test_session.py:32: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

handler = <jupyter_lsp.tests.conftest.MockHandler object at 0x7f0ad747d810>
expected_statuses = {'not_started'}, language_server = None

    async def assert_status_set(handler, expected_statuses, language_server=None):
        await handler.get()
        payload = handler._payload
    
        errors = list(SERVERS_RESPONSE.iter_errors(payload))
        assert not errors
    
        statuses = {
            session["status"]
            for session_server, session in payload["sessions"].items()
            if language_server is None or language_server == session_server
        }
>       assert statuses == expected_statuses, payload
E       AssertionError: {'sessions': {}, 'specs': {'basedpyright': {'argv': [''], 'config_schema': {'$schema': 'http://json-schema.org/draft-0...conda install -c conda-forge pyrefly', 'pip': 'pip install pyrefly', 'uv': 'uv add pyrefly'}, ...}, ...}, 'version': 2}
E       assert set() == {'not_started'}
E         
E         Extra items in the right set:
E         'not_started'
E         Use -v to get more diff

jupyter_lsp/tests/test_session.py:21: AssertionError
__________________ test_start_known[unified-language-server] ___________________

known_server = 'unified-language-server'
handlers = (<jupyter_lsp.tests.conftest.MockHandler object at 0x7f0ad747c7d0>, <jupyter_lsp.tests.conftest.MockWebsocketHandler object at 0x7f0ad747c5f0>)
jsonrpc_init_msg = '{"id": 0, "jsonrpc": "2.0", "method": "initialize", "params": {"capabilities": {"workspace": {"didChangeConfiguration...//builddir/build/BUILD/python-jupyter-lsp-2.3.0-build/jupyter_lsp-2.3.0/jupyter_lsp/tests", "workspaceFolders": null}}'

    @pytest.mark.asyncio
    async def test_start_known(known_server, handlers, jsonrpc_init_msg):
        """will a process start for a known server if a handler starts?"""
        handler, ws_handler = handlers
        manager = handler.manager
    
        manager.initialize()
    
>       await assert_status_set(handler, {"not_started"})

jupyter_lsp/tests/test_session.py:32: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

handler = <jupyter_lsp.tests.conftest.MockHandler object at 0x7f0ad747c7d0>
expected_statuses = {'not_started'}, language_server = None

    async def assert_status_set(handler, expected_statuses, language_server=None):
        await handler.get()
        payload = handler._payload
    
        errors = list(SERVERS_RESPONSE.iter_errors(payload))
        assert not errors
    
        statuses = {
            session["status"]
            for session_server, session in payload["sessions"].items()
            if language_server is None or language_server == session_server
        }
>       assert statuses == expected_statuses, payload
E       AssertionError: {'sessions': {}, 'specs': {'basedpyright': {'argv': [''], 'config_schema': {'$schema': 'http://json-schema.org/draft-0...conda install -c conda-forge pyrefly', 'pip': 'pip install pyrefly', 'uv': 'uv add pyrefly'}, ...}, ...}, 'version': 2}
E       assert set() == {'not_started'}
E         
E         Extra items in the right set:
E         'not_started'
E         Use -v to get more diff

jupyter_lsp/tests/test_session.py:21: AssertionError
_______________ test_start_known[vscode-css-languageserver-bin] ________________

known_server = 'vscode-css-languageserver-bin'
handlers = (<jupyter_lsp.tests.conftest.MockHandler object at 0x7f0ad745af00>, <jupyter_lsp.tests.conftest.MockWebsocketHandler object at 0x7f0ad747c050>)
jsonrpc_init_msg = '{"id": 0, "jsonrpc": "2.0", "method": "initialize", "params": {"capabilities": {"workspace": {"didChangeConfiguration...//builddir/build/BUILD/python-jupyter-lsp-2.3.0-build/jupyter_lsp-2.3.0/jupyter_lsp/tests", "workspaceFolders": null}}'

    @pytest.mark.asyncio
    async def test_start_known(known_server, handlers, jsonrpc_init_msg):
        """will a process start for a known server if a handler starts?"""
        handler, ws_handler = handlers
        manager = handler.manager
    
        manager.initialize()
    
>       await assert_status_set(handler, {"not_started"})

jupyter_lsp/tests/test_session.py:32: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

handler = <jupyter_lsp.tests.conftest.MockHandler object at 0x7f0ad745af00>
expected_statuses = {'not_started'}, language_server = None

    async def assert_status_set(handler, expected_statuses, language_server=None):
        await handler.get()
        payload = handler._payload
    
        errors = list(SERVERS_RESPONSE.iter_errors(payload))
        assert not errors
    
        statuses = {
            session["status"]
            for session_server, session in payload["sessions"].items()
            if language_server is None or language_server == session_server
        }
>       assert statuses == expected_statuses, payload
E       AssertionError: {'sessions': {}, 'specs': {'basedpyright': {'argv': [''], 'config_schema': {'$schema': 'http://json-schema.org/draft-0...conda install -c conda-forge pyrefly', 'pip': 'pip install pyrefly', 'uv': 'uv add pyrefly'}, ...}, ...}, 'version': 2}
E       assert set() == {'not_started'}
E         
E         Extra items in the right set:
E         'not_started'
E         Use -v to get more diff

jupyter_lsp/tests/test_session.py:21: AssertionError
_______________ test_start_known[vscode-html-languageserver-bin] _______________

known_server = 'vscode-html-languageserver-bin'
handlers = (<jupyter_lsp.tests.conftest.MockHandler object at 0x7f0ad738f550>, <jupyter_lsp.tests.conftest.MockWebsocketHandler object at 0x7f0ad747e210>)
jsonrpc_init_msg = '{"id": 0, "jsonrpc": "2.0", "method": "initialize", "params": {"capabilities": {"workspace": {"didChangeConfiguration...//builddir/build/BUILD/python-jupyter-lsp-2.3.0-build/jupyter_lsp-2.3.0/jupyter_lsp/tests", "workspaceFolders": null}}'

    @pytest.mark.asyncio
    async def test_start_known(known_server, handlers, jsonrpc_init_msg):
        """will a process start for a known server if a handler starts?"""
        handler, ws_handler = handlers
        manager = handler.manager
    
        manager.initialize()
    
>       await assert_status_set(handler, {"not_started"})

jupyter_lsp/tests/test_session.py:32: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

handler = <jupyter_lsp.tests.conftest.MockHandler object at 0x7f0ad738f550>
expected_statuses = {'not_started'}, language_server = None

    async def assert_status_set(handler, expected_statuses, language_server=None):
        await handler.get()
        payload = handler._payload
    
        errors = list(SERVERS_RESPONSE.iter_errors(payload))
        assert not errors
    
        statuses = {
            session["status"]
            for session_server, session in payload["sessions"].items()
            if language_server is None or language_server == session_server
        }
>       assert statuses == expected_statuses, payload
E       AssertionError: {'sessions': {}, 'specs': {'basedpyright': {'argv': [''], 'config_schema': {'$schema': 'http://json-schema.org/draft-0...conda install -c conda-forge pyrefly', 'pip': 'pip install pyrefly', 'uv': 'uv add pyrefly'}, ...}, ...}, 'version': 2}
E       assert set() == {'not_started'}
E         
E         Extra items in the right set:
E         'not_started'
E         Use -v to get more diff

jupyter_lsp/tests/test_session.py:21: AssertionError
_______________ test_start_known[vscode-json-languageserver-bin] _______________

known_server = 'vscode-json-languageserver-bin'
handlers = (<jupyter_lsp.tests.conftest.MockHandler object at 0x7f0ad72f4ad0>, <jupyter_lsp.tests.conftest.MockWebsocketHandler object at 0x7f0ad747c5f0>)
jsonrpc_init_msg = '{"id": 0, "jsonrpc": "2.0", "method": "initialize", "params": {"capabilities": {"workspace": {"didChangeConfiguration...//builddir/build/BUILD/python-jupyter-lsp-2.3.0-build/jupyter_lsp-2.3.0/jupyter_lsp/tests", "workspaceFolders": null}}'

    @pytest.mark.asyncio
    async def test_start_known(known_server, handlers, jsonrpc_init_msg):
        """will a process start for a known server if a handler starts?"""
        handler, ws_handler = handlers
        manager = handler.manager
    
        manager.initialize()
    
>       await assert_status_set(handler, {"not_started"})

jupyter_lsp/tests/test_session.py:32: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

handler = <jupyter_lsp.tests.conftest.MockHandler object at 0x7f0ad72f4ad0>
expected_statuses = {'not_started'}, language_server = None

    async def assert_status_set(handler, expected_statuses, language_server=None):
        await handler.get()
        payload = handler._payload
    
        errors = list(SERVERS_RESPONSE.iter_errors(payload))
        assert not errors
    
        statuses = {
            session["status"]
            for session_server, session in payload["sessions"].items()
            if language_server is None or language_server == session_server
        }
>       assert statuses == expected_statuses, payload
E       AssertionError: {'sessions': {}, 'specs': {'basedpyright': {'argv': [''], 'config_schema': {'$schema': 'http://json-schema.org/draft-0...conda install -c conda-forge pyrefly', 'pip': 'pip install pyrefly', 'uv': 'uv add pyrefly'}, ...}, ...}, 'version': 2}
E       assert set() == {'not_started'}
E         
E         Extra items in the right set:
E         'not_started'
E         Use -v to get more diff

jupyter_lsp/tests/test_session.py:21: AssertionError
____________________ test_start_known[yaml-language-server] ____________________

known_server = 'yaml-language-server'
handlers = (<jupyter_lsp.tests.conftest.MockHandler object at 0x7f0ad7308600>, <jupyter_lsp.tests.conftest.MockWebsocketHandler object at 0x7f0ad747ea30>)
jsonrpc_init_msg = '{"id": 0, "jsonrpc": "2.0", "method": "initialize", "params": {"capabilities": {"workspace": {"didChangeConfiguration...//builddir/build/BUILD/python-jupyter-lsp-2.3.0-build/jupyter_lsp-2.3.0/jupyter_lsp/tests", "workspaceFolders": null}}'

    @pytest.mark.asyncio
    async def test_start_known(known_server, handlers, jsonrpc_init_msg):
        """will a process start for a known server if a handler starts?"""
        handler, ws_handler = handlers
        manager = handler.manager
    
        manager.initialize()
    
>       await assert_status_set(handler, {"not_started"})

jupyter_lsp/tests/test_session.py:32: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

handler = <jupyter_lsp.tests.conftest.MockHandler object at 0x7f0ad7308600>
expected_statuses = {'not_started'}, language_server = None

    async def assert_status_set(handler, expected_statuses, language_server=None):
        await handler.get()
        payload = handler._payload
    
        errors = list(SERVERS_RESPONSE.iter_errors(payload))
        assert not errors
    
        statuses = {
            session["status"]
            for session_server, session in payload["sessions"].items()
            if language_server is None or language_server == session_server
        }
>       assert statuses == expected_statuses, payload
E       AssertionError: {'sessions': {}, 'specs': {'basedpyright': {'argv': [''], 'config_schema': {'$schema': 'http://json-schema.org/draft-0...conda install -c conda-forge pyrefly', 'pip': 'pip install pyrefly', 'uv': 'uv add pyrefly'}, ...}, ...}, 'version': 2}
E       assert set() == {'not_started'}
E         
E         Extra items in the right set:
E         'not_started'
E         Use -v to get more diff

jupyter_lsp/tests/test_session.py:21: AssertionError
___________________ test_start_unknown[foo-language-server] ____________________

known_unknown_server = 'foo-language-server'
handlers = (<jupyter_lsp.tests.conftest.MockHandler object at 0x7f0ad7308910>, <jupyter_lsp.tests.conftest.MockWebsocketHandler object at 0x7f0ad747e5d0>)
jsonrpc_init_msg = '{"id": 0, "jsonrpc": "2.0", "method": "initialize", "params": {"capabilities": {"workspace": {"didChangeConfiguration...//builddir/build/BUILD/python-jupyter-lsp-2.3.0-build/jupyter_lsp-2.3.0/jupyter_lsp/tests", "workspaceFolders": null}}'

    @pytest.mark.asyncio
    async def test_start_unknown(known_unknown_server, handlers, jsonrpc_init_msg):
        """will a process not start for an unknown server if a handler starts?"""
        handler, ws_handler = handlers
        manager = handler.manager
        manager.initialize()
    
>       await assert_status_set(handler, {"not_started"})

jupyter_lsp/tests/test_session.py:65: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

handler = <jupyter_lsp.tests.conftest.MockHandler object at 0x7f0ad7308910>
expected_statuses = {'not_started'}, language_server = None

    async def assert_status_set(handler, expected_statuses, language_server=None):
        await handler.get()
        payload = handler._payload
    
        errors = list(SERVERS_RESPONSE.iter_errors(payload))
        assert not errors
    
        statuses = {
            session["status"]
            for session_server, session in payload["sessions"].items()
            if language_server is None or language_server == session_server
        }
>       assert statuses == expected_statuses, payload
E       AssertionError: {'sessions': {}, 'specs': {'basedpyright': {'argv': [''], 'config_schema': {'$schema': 'http://json-schema.org/draft-0...conda install -c conda-forge pyrefly', 'pip': 'pip install pyrefly', 'uv': 'uv add pyrefly'}, ...}, ...}, 'version': 2}
E       assert set() == {'not_started'}
E         
E         Extra items in the right set:
E         'not_started'
E         Use -v to get more diff

jupyter_lsp/tests/test_session.py:21: AssertionError
_____________________________ test_substitute_env ______________________________

handlers = (<jupyter_lsp.tests.conftest.MockHandler object at 0x7f0ad7309ef0>, <jupyter_lsp.tests.conftest.MockWebsocketHandler object at 0x7f0ad747f570>)

    @pytest.mark.asyncio
    async def test_substitute_env(handlers):
        """should not leak environment variables"""
        a_server = "pylsp"
    
        handler, ws_handler = handlers
        manager = handler.manager
    
        manager.initialize()
    
>       await assert_status_set(handler, {"not_started"})

jupyter_lsp/tests/test_session.py:116: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

handler = <jupyter_lsp.tests.conftest.MockHandler object at 0x7f0ad7309ef0>
expected_statuses = {'not_started'}, language_server = None

    async def assert_status_set(handler, expected_statuses, language_server=None):
        await handler.get()
        payload = handler._payload
    
        errors = list(SERVERS_RESPONSE.iter_errors(payload))
        assert not errors
    
        statuses = {
            session["status"]
            for session_server, session in payload["sessions"].items()
            if language_server is None or language_server == session_server
        }
>       assert statuses == expected_statuses, payload
E       AssertionError: {'sessions': {}, 'specs': {'basedpyright': {'argv': [''], 'config_schema': {'$schema': 'http://json-schema.org/draft-0...conda install -c conda-forge pyrefly', 'pip': 'pip install pyrefly', 'uv': 'uv add pyrefly'}, ...}, ...}, 'version': 2}
E       assert set() == {'not_started'}
E         
E         Extra items in the right set:
E         'not_started'
E         Use -v to get more diff

jupyter_lsp/tests/test_session.py:21: AssertionError
=============================== warnings summary ===============================
../../../../../usr/lib/python3.14/site-packages/traitlets/traitlets.py:3913
  /usr/lib/python3.14/site-packages/traitlets/traitlets.py:3913: DeprecationWarning: Keyword `trait` is deprecated in traitlets 5.0, use `value_trait` instead
    warn(

../../../../../usr/lib/python3.14/site-packages/traitlets/traitlets.py:3615
../../../../../usr/lib/python3.14/site-packages/traitlets/traitlets.py:3615
../../../../../usr/lib/python3.14/site-packages/traitlets/traitlets.py:3615
  /usr/lib/python3.14/site-packages/traitlets/traitlets.py:3615: DeprecationWarning: Traits should be given as instances, not types (for example, `Int()`, not `Int`). Passing types is deprecated in traitlets 4.1.
    super().__init__(trait=trait, default_value=default_value, **kwargs)

jupyter_lsp/tests/test_extension.py::test_serverextension
jupyter_lsp/tests/test_extension.py::test_default_virtual_documents_dir
jupyter_lsp/tests/test_extension.py::test_virtual_documents_dir_config
jupyter_lsp/tests/test_extension.py::test_virtual_documents_dir_env
jupyter_lsp/tests/test_extension.py::test_virtual_documents_dir_env_empty[]
jupyter_lsp/tests/test_extension.py::test_virtual_documents_dir_env_empty[.]
  /usr/lib/python3.14/site-packages/traitlets/traitlets.py:4073: DeprecationWarning: --jpserver_extensions={'jupyter_lsp.serverextension': True} for dict-traits is deprecated in traitlets 5.0. You can pass --jpserver_extensions <key=value> ... multiple times to add items to a dict.
    warn(

jupyter_lsp/tests/test_extension.py::test_serverextension
jupyter_lsp/tests/test_extension.py::test_default_virtual_documents_dir
jupyter_lsp/tests/test_extension.py::test_virtual_documents_dir_config
jupyter_lsp/tests/test_extension.py::test_virtual_documents_dir_env
jupyter_lsp/tests/test_extension.py::test_virtual_documents_dir_env_empty[]
jupyter_lsp/tests/test_extension.py::test_virtual_documents_dir_env_empty[.]
  /usr/lib/python3.14/site-packages/jupyter_server/extension/manager.py:126: DeprecationWarning: A `_load_jupyter_server_extension` function was not found in <module 'jupyter_lsp.serverextension' from '/builddir/build/BUILD/python-jupyter-lsp-2.3.0-build/jupyter_lsp-2.3.0/jupyter_lsp/serverextension.py'>. Instead, a `load_jupyter_server_extension` function was found and will be used for now. This function name will be deprecated in future releases of Jupyter Server.
    loader = get_loader(loc)

jupyter_lsp/tests/test_extension.py::test_virtual_documents_dir_env_empty[.]
  /builddir/build/BUILD/python-jupyter-lsp-2.3.0-build/jupyter_lsp-2.3.0/jupyter_lsp/serverextension.py:69: DeprecationWarning: The 'warn' method is deprecated, use 'warning' instead
    nbapp.log.warn("virtual documents path must differ from the root path")

jupyter_lsp/tests/test_session.py: 12 warnings
  /usr/lib64/python3.14/site-packages/tornado/web.py:1474: DeprecationWarning: Calling `MockHandler.get_current_user()` directly is deprecated in jupyter-server 2.0. Use `self.current_user` instead (works in all versions).
    self._current_user = self.get_current_user()

jupyter_lsp/tests/test_session.py: 12 warnings
  /usr/lib/python3.14/site-packages/jupyter_server/auth/decorator.py:67: UserWarning: The Tornado web application does not have an 'authorizer' defined in its settings. In future releases of jupyter_server, this will be a required key for all subclasses of `JupyterHandler`. For an example, see the jupyter_server source code for how to add an authorizer to the tornado settings: https://github.com/jupyter-server/jupyter_server/blob/653740cbad7ce0c8a8752ce83e4d3c2c754b13cb/jupyter_server/serverapp.py#L234-L256
    self.authorizer.is_authorized(self, user, action, resource)

jupyter_lsp/tests/test_session.py: 12 warnings
  /usr/lib/python3.14/site-packages/jupyter_server/base/handlers.py:247: UserWarning: The Tornado web application does not have an 'identity_provider' defined in its settings. In future releases of jupyter_server, this will be a required key for all subclasses of `JupyterHandler`. For an example, see the jupyter_server source code for how to add an identity provider to the tornado settings: https://github.com/jupyter-server/jupyter_server/blob/v2.0.0/jupyter_server/serverapp.py#L242
    identity_provider=self.identity_provider,

jupyter_lsp/tests/test_virtual_documents_shadow.py::test_io_failure
  /builddir/build/BUILD/python-jupyter-lsp-2.3.0-build/jupyter_lsp-2.3.0/jupyter_lsp/virtual_documents_shadow.py:162: DeprecationWarning: The 'warn' method is deprecated, use 'warning' instead
    manager.log.warn(

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
FAILED jupyter_lsp/tests/test_listener.py::test_listeners[bash-language-server]
FAILED jupyter_lsp/tests/test_listener.py::test_listeners[dockerfile-language-server-nodejs]
FAILED jupyter_lsp/tests/test_listener.py::test_listeners[pylsp] - assert 2 == 1
FAILED jupyter_lsp/tests/test_listener.py::test_listeners[sql-language-server]
FAILED jupyter_lsp/tests/test_listener.py::test_listeners[typescript-language-server]
FAILED jupyter_lsp/tests/test_listener.py::test_listeners[unified-language-server]
FAILED jupyter_lsp/tests/test_listener.py::test_listeners[vscode-css-languageserver-bin]
FAILED jupyter_lsp/tests/test_listener.py::test_listeners[vscode-html-languageserver-bin]
FAILED jupyter_lsp/tests/test_listener.py::test_listeners[vscode-json-languageserver-bin]
FAILED jupyter_lsp/tests/test_listener.py::test_listeners[yaml-language-server]
FAILED jupyter_lsp/tests/test_session.py::test_start_known[bash-language-server]
FAILED jupyter_lsp/tests/test_session.py::test_start_known[dockerfile-language-server-nodejs]
FAILED jupyter_lsp/tests/test_session.py::test_start_known[pylsp] - Assertion...
FAILED jupyter_lsp/tests/test_session.py::test_start_known[sql-language-server]
FAILED jupyter_lsp/tests/test_session.py::test_start_known[typescript-language-server]
FAILED jupyter_lsp/tests/test_session.py::test_start_known[unified-language-server]
FAILED jupyter_lsp/tests/test_session.py::test_start_known[vscode-css-languageserver-bin]
FAILED jupyter_lsp/tests/test_session.py::test_start_known[vscode-html-languageserver-bin]
FAILED jupyter_lsp/tests/test_session.py::test_start_known[vscode-json-languageserver-bin]
FAILED jupyter_lsp/tests/test_session.py::test_start_known[yaml-language-server]
FAILED jupyter_lsp/tests/test_session.py::test_start_unknown[foo-language-server]
FAILED jupyter_lsp/tests/test_session.py::test_substitute_env - AssertionErro...
===== 22 failed, 66 passed, 8 skipped, 1 deselected, 54 warnings in 37.70s =====

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions