Files
thePlug/backend/tests/services/test_python_lsp.py
2026-05-07 09:21:45 +02:00

31 lines
760 B
Python

from app.services.editor import python_lsp
def test_encode_message():
message = '{"jsonrpc":"2.0"}'
payload = python_lsp.encode_message(message)
assert payload.endswith(message.encode("utf-8"))
assert payload.startswith(
f"Content-Length: {len(message.encode('utf-8'))}\r\n\r\n".encode("ascii")
)
def test_frame_buffer_reads_split_messages():
buffer = python_lsp.LspFrameBuffer()
first = python_lsp.encode_message('{"id":1}')
second = python_lsp.encode_message('{"id":2}')
parts = [
first[:12],
first[12:] + second[:10],
second[10:],
]
messages: list[str] = []
for part in parts:
messages.extend(buffer.feed(part))
assert messages == ['{"id":1}', '{"id":2}']