summaryrefslogtreecommitdiff
path: root/tests/test_bashcompletion.py
diff options
context:
space:
mode:
authorTodd Leonhardt <todd.leonhardt@gmail.com>2018-05-31 20:09:45 -0700
committerGitHub <noreply@github.com>2018-05-31 20:09:45 -0700
commit98522702b9131c41741af07f7acdf74b7f25d4d7 (patch)
tree03fa9a1595a5f76d41b3e82eefac0d2003753464 /tests/test_bashcompletion.py
parent26c92194eaafd78100fe3aa4290e7fd67d8f3120 (diff)
parent8ca52ba0d5617a227d67132d53dd7258829fa5ef (diff)
downloadcmd2-git-98522702b9131c41741af07f7acdf74b7f25d4d7.tar.gz
Merge pull request #425 from python-cmd2/unit_tests
Add a couple unit tests for tokens_for_completion in argcomplete_bridge.py
Diffstat (limited to 'tests/test_bashcompletion.py')
-rw-r--r--tests/test_bashcompletion.py26
1 files changed, 25 insertions, 1 deletions
diff --git a/tests/test_bashcompletion.py b/tests/test_bashcompletion.py
index 298bdf1e..e2c28fce 100644
--- a/tests/test_bashcompletion.py
+++ b/tests/test_bashcompletion.py
@@ -7,6 +7,7 @@ Released under MIT license, see LICENSE file
"""
import os
import pytest
+import shlex
import sys
from typing import List
@@ -14,7 +15,7 @@ from cmd2.argparse_completer import ACArgumentParser, AutoCompleter
try:
- from cmd2.argcomplete_bridge import CompletionFinder
+ from cmd2.argcomplete_bridge import CompletionFinder, tokens_for_completion
skip_reason1 = False
skip_reason = ''
except ImportError:
@@ -230,3 +231,26 @@ Hint:
out, err = capfd.readouterr()
assert out == exp_out
assert err == exp_err
+
+@pytest.mark.skipif(skip_reason1, reason=skip_reason)
+def test_argcomplete_tokens_for_completion_simple():
+ line = 'this is "a test"'
+ endidx = len(line)
+
+ tokens, raw_tokens, begin_idx, end_idx = tokens_for_completion(line, endidx)
+ assert tokens == shlex.split(line)
+ assert raw_tokens == ['this', 'is', '"a test"']
+ assert begin_idx == line.rfind("is ") + len("is ")
+ assert end_idx == end_idx
+
+@pytest.mark.skipif(skip_reason1, reason=skip_reason)
+def test_argcomplete_tokens_for_completion_unclosed_quotee_exception():
+ line = 'this is "a test'
+ endidx = len(line)
+
+ tokens, raw_tokens, begin_idx, end_idx = tokens_for_completion(line, endidx)
+
+ assert tokens == ['this', 'is', 'a test']
+ assert raw_tokens == ['this', 'is', '"a test']
+ assert begin_idx == line.rfind("is ") + len("is ") + 1
+ assert end_idx == end_idx