Fixtures¶
Parameterised Fixtures¶
Like regular pytest fixtures, pytest_lsp.fixture()
supports parameterisation.
This can be used to run the same set of tests while pretending to be a different client each time.
@pytest_lsp.fixture(
params=["neovim", "visual_studio_code"],
config=ClientServerConfig(server_command=[sys.executable, "server.py"]),
)
async def client(request, lsp_client: LanguageClient):
# Setup
params = InitializeParams(capabilities=client_capabilities(request.param))
await lsp_client.initialize_session(params)
yield
# Teardown
await lsp_client.shutdown_session()
Requesting Other Fixtures¶
As you would expect, it’s possible to request other fixtures to help set up your client.
@pytest.fixture(scope="module")
def client_name():
return "neovim"
@pytest_lsp.fixture(
config=ClientServerConfig(server_command=[sys.executable, "server.py"]),
)
async def client(client_name: str, lsp_client: LanguageClient):
# Setup
params = InitializeParams(capabilities=client_capabilities(client_name))
await lsp_client.initialize_session(params)
yield
# Teardown
await lsp_client.shutdown_session()