Skip to content

Commit

Permalink
debug
Browse files Browse the repository at this point in the history
  • Loading branch information
alcarney committed Oct 7, 2024
1 parent ed4d383 commit e716b74
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 2 deletions.
2 changes: 2 additions & 0 deletions examples/servers/threaded_handlers.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
"""
from __future__ import annotations

import logging
import time
import threading

Expand Down Expand Up @@ -93,4 +94,5 @@ def count_down_error(ls: LanguageServer, *args):


if __name__ == "__main__":
logging.basicConfig(level=logging.DEBUG)
start_server(server)
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ poetry_lock_check = "poetry check"
[tool.poe.tasks.test]
sequence = [
{ cmd = "pytest --cov" },
{ cmd = "pytest tests/e2e --lsp-transport tcp" },
{ cmd = "pytest tests/e2e --lsp-transport tcp --log-cli-level debug -vs" },
]
ignore_fail = "return_non_zero"

Expand Down
18 changes: 17 additions & 1 deletion tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,16 @@ def server_dir():
return path.resolve()


async def forward_stderr(server: asyncio.subprocess.Process):
if server.stderr is None:
return

# EOF is signalled with an empty bytestring
while (line := await server.stderr.readline()) != b"":
sys.stderr.buffer.write(line)



def get_client_for_cpython_server(transport, uri_fixture):
"""Return a client configured to communicate with a server running under cpython."""

Expand All @@ -199,6 +209,7 @@ async def fn(

server_cmd = [sys.executable, str(SERVER_DIR / server_name)]
server: asyncio.subprocess.Process | None = None
stderr_forwarder = None

if transport == "stdio":
await client.start_io(*server_cmd)
Expand All @@ -208,7 +219,8 @@ async def fn(
host, port = "localhost", 8888
server_cmd.extend(["--tcp", "--host", host, "--port", f"{port}"])

server = await asyncio.create_subprocess_exec(*server_cmd)
server = await asyncio.create_subprocess_exec(*server_cmd, stderr=asyncio.subprocess.PIPE)
stderr_forwarder = asyncio.create_task(forward_stderr(server))
await asyncio.sleep(1)
await client.start_tcp(host, port)

Expand All @@ -228,6 +240,10 @@ async def fn(
client.exit(None)

await client.stop()

if stderr_forwarder:
stderr_forwarder.cancel()

if server is not None and server.returncode is None:
server.terminate()

Expand Down

0 comments on commit e716b74

Please sign in to comment.