summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTodd Leonhardt <todd.leonhardt@gmail.com>2018-05-30 22:16:26 -0700
committerTodd Leonhardt <todd.leonhardt@gmail.com>2018-05-30 22:16:26 -0700
commit44fc8d13a66828527a4c9bae711d5242b29e25ab (patch)
tree2eb80e5d4eb17dcc1ebc59452545616f82128f14
parent7000604ac826a637539c388ad8f5ff8a3ebfc419 (diff)
downloadcmd2-git-44fc8d13a66828527a4c9bae711d5242b29e25ab.tar.gz
Increase unit test coverage of argcomplete_bridge.py
Added a couple unit tests for tokens_for_completion() function.
-rw-r--r--tests/test_bashcompletion.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/test_bashcompletion.py b/tests/test_bashcompletion.py
index 298bdf1e..cf916abe 100644
--- a/tests/test_bashcompletion.py
+++ b/tests/test_bashcompletion.py
@@ -7,9 +7,11 @@ Released under MIT license, see LICENSE file
"""
import os
import pytest
+import shlex
import sys
from typing import List
+from cmd2.argcomplete_bridge import tokens_for_completion
from cmd2.argparse_completer import ACArgumentParser, AutoCompleter
@@ -230,3 +232,25 @@ Hint:
out, err = capfd.readouterr()
assert out == exp_out
assert err == exp_err
+
+
+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
+
+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