feat: add shell-completions subcommand (#76)

This commit is contained in:
Lam Chau
2024-09-25 15:58:19 -07:00
committed by GitHub
parent 2b6db664c5
commit 5c52138f38
5 changed files with 221 additions and 18 deletions
+34
View File
@@ -0,0 +1,34 @@
import sys
import unittest.mock as mock
from goose.utils.autocomplete import SUPPORTED_SHELLS, is_autocomplete_installed, setup_autocomplete
def test_supported_shells():
assert SUPPORTED_SHELLS == ["bash", "zsh", "fish"]
def test_install_autocomplete(tmp_path):
file = tmp_path / "test_bash_autocomplete"
assert is_autocomplete_installed(file) is False
file.write_text("_GOOSE_COMPLETE")
assert is_autocomplete_installed(file) is True
@mock.patch("sys.stdout")
def test_setup_bash(mocker: mock.MagicMock):
setup_autocomplete("bash", install=False)
sys.stdout.write.assert_called_with('eval "$(_GOOSE_COMPLETE=bash_source goose)"\n')
@mock.patch("sys.stdout")
def test_setup_zsh(mocker: mock.MagicMock):
setup_autocomplete("zsh", install=False)
sys.stdout.write.assert_called_with('eval "$(_GOOSE_COMPLETE=zsh_source goose)"\n')
@mock.patch("sys.stdout")
def test_setup_fish(mocker: mock.MagicMock):
setup_autocomplete("fish", install=False)
sys.stdout.write.assert_called_with("_GOOSE_COMPLETE=fish_source goose | source\n")