diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-14 20:16:54 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-14 20:16:54 +0000 |
commit | 7a7c8ddc4a4432907f433fdef3f0a233c790780f (patch) | |
tree | 96bd397d86308e4875e7764cdf4f98dfc7433481 /tests/lsp_tests/test_lsp_dctrl.py | |
parent | Releasing progress-linux version 0.1.24-0.0~progress7.99u1. (diff) | |
download | debputy-7a7c8ddc4a4432907f433fdef3f0a233c790780f.tar.xz debputy-7a7c8ddc4a4432907f433fdef3f0a233c790780f.zip |
Merging upstream version 0.1.25.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tests/lsp_tests/test_lsp_dctrl.py')
-rw-r--r-- | tests/lsp_tests/test_lsp_dctrl.py | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/tests/lsp_tests/test_lsp_dctrl.py b/tests/lsp_tests/test_lsp_dctrl.py new file mode 100644 index 0000000..2a2466f --- /dev/null +++ b/tests/lsp_tests/test_lsp_dctrl.py @@ -0,0 +1,72 @@ +import textwrap + +try: + from lsprotocol.types import ( + CompletionParams, + TextDocumentIdentifier, + HoverParams, + MarkupContent, + ) + + from debputy.lsp.lsp_debian_control import ( + _debian_control_completions, + _debian_control_hover, + ) + + from pygls.server import LanguageServer +except ImportError: + pass +from lsp_tests.lsp_tutil import put_doc_with_cursor + + +def test_dctrl_complete_field(ls: "LanguageServer") -> None: + dctrl_uri = "file:///nowhere/debian/control" + + cursor_pos = put_doc_with_cursor( + ls, + dctrl_uri, + "debian/control", + textwrap.dedent( + """\ + Source: foo + + Package: foo + <CURSOR> +""" + ), + ) + matches = _debian_control_completions( + ls, + CompletionParams(TextDocumentIdentifier(dctrl_uri), cursor_pos), + ) + assert matches + keywords = {m.label for m in matches} + assert "Multi-Arch" in keywords + assert "Architecture" in keywords + # Already present or wrong section + assert "Package" not in keywords + assert "Source" not in keywords + + +def test_dctrl_hover_doc_field(ls: "LanguageServer") -> None: + dctrl_uri = "file:///nowhere/debian/control" + cursor_pos = put_doc_with_cursor( + ls, + dctrl_uri, + "debian/control", + textwrap.dedent( + """\ + Source: foo + + Package: foo + Arch<CURSOR>itecture: any +""" + ), + ) + + hover_doc = _debian_control_hover( + ls, + HoverParams(TextDocumentIdentifier(dctrl_uri), cursor_pos), + ) + assert hover_doc is not None and isinstance(hover_doc.contents, MarkupContent) + assert "Determines which architecture" in hover_doc.contents.value |