def test_rich_completion(completion, lprefix, ptk_completion, monkeypatch, xonsh_builtins): xonsh_completer_mock = MagicMock() xonsh_completer_mock.complete.return_value = {completion}, lprefix ptk_completer = PromptToolkitCompleter(xonsh_completer_mock, None, None) ptk_completer.reserve_space = lambda: None ptk_completer.suggestion_completion = lambda _, __: None document_mock = MagicMock() document_mock.text = '' document_mock.current_line = '' document_mock.cursor_position_col = 0 monkeypatch.setattr('builtins.aliases', Aliases()) completions = list( ptk_completer.get_completions(document_mock, MagicMock())) if isinstance(completion, RichCompletion) and not ptk_completion: assert completions == [ PTKCompletion(completion, -completion.prefix_len, completion.display, completion.description) ] else: assert completions == [ptk_completion]
def test_alias_expansion(code, index, expected_args, monkeypatch, xession): xonsh_completer_mock = MagicMock(spec=Completer) xonsh_completer_mock.complete.return_value = set(), 0 ptk_completer = PromptToolkitCompleter(xonsh_completer_mock, None, None) ptk_completer.reserve_space = lambda: None ptk_completer.suggestion_completion = lambda _, __: None monkeypatch.setattr(xession, "aliases", Aliases(gb=["git branch"])) list(ptk_completer.get_completions(Document(code, index), MagicMock())) mock_call = xonsh_completer_mock.complete.call_args args, kwargs = mock_call expected_args["self"] = None expected_args["ctx"] = None assert (signature(Completer.complete).bind( None, *args, **kwargs).arguments == expected_args)