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.2.0.tar.gz
(18.9 kB
view hashes)
Built Distribution
pytest_lsp-0.2.0-py3-none-any.whl
(19.9 kB
view hashes)
Close
Hashes for pytest_lsp-0.2.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 461a0e798978b153e758aada389340f1d7db77ab47ba4308c98261e8223f2dd6 |
|
MD5 | 79e837a71c9845ca533d08f7b371dca4 |
|
BLAKE2b-256 | b282ebb4ed47a3fc4861344d3421811fba0913dd19a2ea9261bc6c5504f99cfa |