Pytest plugin for end-to-end testing of language servers
Project description
pytest-lsp: End-to-end testing of language servers with pytest
This plugin is in very early development, it currently implements just enough to support the test suite of the esbonio language server.
pytest-lsp
is a pytest plugin for writing end-to-end tests for language servers.
It works by running the language server in a subprocess and communicating with it over stdio, just like a real language client.
This also means pytest-lsp
can be used to test language servers written in any language - not just Python.
pytest-lsp
relies on the pygls
library for its language server protocol implementation.
import sys
import pytest
import pytest_lsp
from pytest_lsp import ClientServerConfig
@pytest_lsp.fixture(
scope='session',
config=ClientServerConfig(
server_command=[sys.executable, "-m", "esbonio"],
root_uri="file:///path/to/test/project/root/"
),
)
async def client():
pass
@pytest.mark.asyncio
async def test_completion(client):
test_uri="file:///path/to/test/project/root/test_file.rst"
result = await client.completion_request(test_uri, line=5, character=23)
assert len(result.items) > 0
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pytest-lsp-0.0.5.tar.gz
(11.5 kB
view hashes)
Built Distribution
pytest_lsp-0.0.5-py3-none-any.whl
(12.6 kB
view hashes)
Close
Hashes for pytest_lsp-0.0.5-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ab0fe6342ee291a8fa27e44774c6c14708264deaafee81746500a9ba33ffce46 |
|
MD5 | f301785098c76f8fc806518a867f42fc |
|
BLAKE2b-256 | 75065d0d2915db1bb27babe62f556c03a78694c1d4e1411ab1a98ff04b2cf173 |