summaryrefslogtreecommitdiffstats
path: root/test/t/unit/test_unit_xfunc.py
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 01:03:19 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 01:03:19 +0000
commit6c09f2a45c5541e9c207d14fc7aa21a4a0066bde (patch)
tree0221189d367bf661f6f9493c4f17a03f0dd4b7d2 /test/t/unit/test_unit_xfunc.py
parentReleasing progress-linux version 1:2.11-8~progress7.99u1. (diff)
downloadbash-completion-6c09f2a45c5541e9c207d14fc7aa21a4a0066bde.tar.xz
bash-completion-6c09f2a45c5541e9c207d14fc7aa21a4a0066bde.zip
Merging upstream version 1:2.12.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'test/t/unit/test_unit_xfunc.py')
-rw-r--r--test/t/unit/test_unit_xfunc.py71
1 files changed, 71 insertions, 0 deletions
diff --git a/test/t/unit/test_unit_xfunc.py b/test/t/unit/test_unit_xfunc.py
new file mode 100644
index 0000000..3fb3a72
--- /dev/null
+++ b/test/t/unit/test_unit_xfunc.py
@@ -0,0 +1,71 @@
+import pytest
+
+from conftest import assert_bash_exec, bash_env_saved
+
+
+@pytest.mark.bashcomp(cmd=None)
+class TestUnitXfunc:
+ def test_1(self, bash):
+ with bash_env_saved(bash) as bash_env:
+ bash_env.write_variable(
+ "BASH_COMPLETION_USER_DIR", "$PWD/_comp_xfunc", quote=False
+ )
+
+ # test precondition
+ assert_bash_exec(
+ bash,
+ "! declare -F _comp_xfunc_xfunc_test1_utility1 &>/dev/null",
+ )
+
+ # first invocation (completion/xfunc-test1 is sourced)
+ output = assert_bash_exec(
+ bash,
+ "_comp_xfunc xfunc-test1 utility1 'a b' cde fgh",
+ want_output=True,
+ )
+ assert output.strip() == "util1[<a b><cde><fgh>]"
+
+ # test precondition
+ assert_bash_exec(
+ bash, "declare -F _comp_xfunc_xfunc_test1_utility1 &>/dev/null"
+ )
+
+ # second invocation (completion/xfunc-test1 is not sourced)
+ output = assert_bash_exec(
+ bash,
+ "_comp_xfunc xfunc-test1 utility1 'a b' cde fgh",
+ want_output=True,
+ )
+ assert output.strip() == "util1[<a b><cde><fgh>]"
+
+ def test_2(self, bash):
+ with bash_env_saved(bash) as bash_env:
+ bash_env.write_variable(
+ "BASH_COMPLETION_USER_DIR", "$PWD/_comp_xfunc", quote=False
+ )
+
+ # test precondition
+ assert_bash_exec(
+ bash, "! declare -F _comp_xfunc_non_standard_name &>/dev/null"
+ )
+
+ # first invocation (completion/xfunc-test2 is sourced)
+ output = assert_bash_exec(
+ bash,
+ "_comp_xfunc xfunc-test2 _comp_xfunc_non_standard_name 'a b' cde fgh",
+ want_output=True,
+ )
+ assert output.strip() == "util2[<a b><cde><fgh>]"
+
+ # test precondition
+ assert_bash_exec(
+ bash, "declare -F _comp_xfunc_non_standard_name &>/dev/null"
+ )
+
+ # second invocation (completion/xfunc-test2 is not sourced)
+ output = assert_bash_exec(
+ bash,
+ "_comp_xfunc xfunc-test2 _comp_xfunc_non_standard_name 'a b' cde fgh",
+ want_output=True,
+ )
+ assert output.strip() == "util2[<a b><cde><fgh>]"