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.6.tar.gz
(11.6 kB
view hashes)
Built Distribution
pytest_lsp-0.0.6-py3-none-any.whl
(12.7 kB
view hashes)
Close
Hashes for pytest_lsp-0.0.6-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 911842168ab355788de849d0be5a8692369bb53185cba38563f675cd1cb0ab27 |
|
MD5 | 7a1cee5ecc91ac7181e79a282842e9f5 |
|
BLAKE2b-256 | 8ec0910ec3a5386a9bb6a1d37460da03daa16d4648e9394eb8742110c20dcec9 |