From ee65fb850961435a3c8ed89ffb20d16f0e8505a3 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 14 Apr 2024 22:16:53 +0200 Subject: Adding upstream version 0.1.25. Signed-off-by: Daniel Baumann --- tests/lsp_tests/test_lsp_dctrl.py | 72 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 tests/lsp_tests/test_lsp_dctrl.py (limited to 'tests/lsp_tests/test_lsp_dctrl.py') 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 + +""" + ), + ) + 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 + Architecture: 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 -- cgit v1.2.3