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.2.tar.gz
(10.6 kB
view hashes)
Built Distribution
pytest_lsp-0.0.2-py3-none-any.whl
(11.8 kB
view hashes)
Close
Hashes for pytest_lsp-0.0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ddb09f0d9609706534b726fdc795eefeea83ae0fc5d526c3d63f37076d0e9976 |
|
MD5 | 411c64fc633968744fd197ca5fab894a |
|
BLAKE2b-256 | c79027155ad163a7a5f047df79c51f75baa665b6eb1c3de3ab8ba4e8d0344e7a |