Changelog¶
v0.4.1 - 2024-02-07¶
Enhancements¶
When a test fails
pytest-lsp
will now show the server’sstderr
output (if any) (#143)
Client Capabilities¶
Add client capabilities for Emacs v29.1 (#142)
Fixes¶
LspSpecificationWarnings
will no longer be incorrectly emitted when a client does indeed supportwindow/workDoneProgress/create
requests (#119)
Misc¶
Bump minimum version of
pytest-asyncio
to0.23.0
(#126)
v0.4.0 - 2023-11-13¶
Features¶
The test
LanguageClient
now supportsworkspace/configuration
requests (#90)pytest-lsp’s
LanguageClient
is now able to handlewindow/workDoneProgress/create
requests. (#91)pytest-lsp
is now able to integrate withlsp-devtools
, runpytest
with the--lsp-devtools
flag to enable the integration. (#97)
Enhancements¶
It is now possible to select a specific version of a client when using the
client_capabilities()
function. e.g.client-name@latest
,client-name@v2
orclient-name@2.1.3
.pytest-lsp
will choose the latest available version of the client that satisfies the given constraint. (#101)
Client Capabilities¶
v0.3.1 - 2023-10-06¶
This release includes some minor breaking changes if you were using the lower-level APIs e.g make_client_server
.
See this commit for a sample migration
Enhancements¶
pytest-lsp’s
LanguageClient
is now based on the one provided bypygls
. The main benefit is that the server connection is now based on anasyncio.subprocess.Process
removing the need for pytest-lsp to constantly check to see if the server is still running. (#61)Fixtures created with the
@pytest_lsp.fixture
decorator can now request additional pytest fixtures (#71)It is now possible to set the environment variables that the server under test is launched with. (#72)
It is now possible to test any JSON-RPC based server with
pytest-lsp
. Note however, this support will only ever extend to managing the client-server connection. (#73)
Misc¶
v0.3.0 - 2023-05-19¶
Features¶
@pytest_lsp.fixture
now supports theyield
statement, allowing theclient
fixture definition to be responsible for initialising and shutting down the LSP session granting the test author full control over the contents of theinitialize
request.This is a breaking change, see the documentation for details and this PR for an example migration. (#47)
If a client’s capabilities has been set, pytest-lsp will automatically check the server’s response to see if it is compatible with the capabilities the client provided.
If an issue is detected, pytest-lsp will emit an
LspSpecificationWarning
Note: This relies on a dedicated
check_xxx
function being written for each request so only a subset of the LSP spec is currently supported. (#57)
Docs¶
Misc¶
The client-server connection is now managed by a single asyncio event loop, rather than spinning up multiple threads, resulting in a much simpler architecture. (#44)
Removed¶
v0.2.1 - 2023-01-14¶
Fixes¶
Ensure that the test client returns a
ShowDocumentResult
forwindow/showDocument
requests. (#34)
v0.2.0 - 2023-01-10¶
Features¶
The
LanguageClient
now exposes methods covering the full LSP spec thanks to autogenerating its client from type definitions provided bylsprotocol
(#25)
Misc¶
Support for Python 3.6 has been dropped.
Support for Python 3.11 has been added.
Upgraded to pygls 1.0. (#25)
v0.1.3 - 2022-10-15¶
Fixes¶
Check that server provided for testing doesn’t crash within the first 0.1 seconds
Return
INITIALIZE
response fromClientServer.start()
. This allows tests to assert against the server’sINITIALIZE
response without resending theINITIALIZE
request in the actual test. (#22)
v0.1.2 - 2022-07-18¶
Enhancements¶
Add helpers for
textDocument/implementation
requests (#15)
v0.1.1 - 2022-07-17¶
Misc¶
Remove upper bound on required
pygls
version (#14)
v0.1.0 - 2022-07-02¶
Features¶
Any
window/logMessage
messages emitted by a server under test are now captured and reported alongside any test failures (#5)
Enhancements¶
For currently implemented lsp request helpers, the test client now supports all valid return types. (#11)
Fixes¶
The test client now correctly handles
null
responses. (#9)
v0.0.7 - 2022-05-26¶
Enhancements¶
Add helpers for
textDocument/hover
requests. (#8)
v0.0.6 - 2022-04-18¶
Enhancements¶
Added helpers for
textDocument/documentLink
requests. (#4)
v0.0.5 - 2022-04-02¶
Fixes¶
The plugin should now work on Python v3.6+ (#1)
v0.0.3 - 2022-03-28¶
Removed¶
Removed
event_loop
fixture
v0.0.3 - 2022-03-28¶
Fixes¶
Fixture creation on Python 3.6 should now work
v0.0.2 - 2022-03-28¶
Fixes¶
Ensure the
py.typed
file is packaged.The
importlib_resources
import on Python 3.6 should now work
v0.0.1 - 2022-03-28¶
Initial Release