summaryrefslogtreecommitdiff
path: root/tests/test_bashcompletion.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_bashcompletion.py')
-rw-r--r--tests/test_bashcompletion.py25
1 files changed, 23 insertions, 2 deletions
diff --git a/tests/test_bashcompletion.py b/tests/test_bashcompletion.py
index da897bf7..03e4afbb 100644
--- a/tests/test_bashcompletion.py
+++ b/tests/test_bashcompletion.py
@@ -11,11 +11,27 @@ import sys
from typing import List
from cmd2.argparse_completer import ACArgumentParser, AutoCompleter
+
+
try:
from cmd2.argcomplete_bridge import CompletionFinder
-except:
+ skip_reason1 = False
+ skip_reason = ''
+except ImportError:
# Don't test if argcomplete isn't present (likely on Windows)
- pytest.skip()
+ skip_reason1 = True
+ skip_reason = "argcomplete isn't installed\n"
+
+
+skip_reason2 = "TRAVIS" in os.environ and os.environ["TRAVIS"] == "true"
+if skip_reason2:
+ skip_reason += 'These tests cannot run on TRAVIS\n'
+skip_reason3 = sys.platform.startswith('win')
+if skip_reason3:
+ skip_reason = 'argcomplete doesn\'t support Windows'
+
+skip = skip_reason1 or skip_reason2 or skip_reason3
+
actors = ['Mark Hamill', 'Harrison Ford', 'Carrie Fisher', 'Alec Guinness', 'Peter Mayhew',
'Anthony Daniels', 'Adam Driver', 'Daisy Ridley', 'John Boyega', 'Oscar Isaac',
@@ -84,6 +100,7 @@ def parser1():
# noinspection PyShadowingNames
+@pytest.mark.skipif(skip, reason=skip_reason)
def test_bash_nocomplete(parser1):
completer = CompletionFinder()
result = completer(parser1, AutoCompleter(parser1))
@@ -102,6 +119,7 @@ def my_fdopen(fd, mode):
# noinspection PyShadowingNames
+@pytest.mark.skipif(skip, reason=skip_reason)
def test_invalid_ifs(parser1, mock):
completer = CompletionFinder()
@@ -115,6 +133,7 @@ def test_invalid_ifs(parser1, mock):
# noinspection PyShadowingNames
+@pytest.mark.skipif(skip, reason=skip_reason)
@pytest.mark.parametrize('comp_line, exp_out, exp_err', [
('media ', 'movies\013shows', ''),
('media mo', 'movies', ''),
@@ -154,6 +173,7 @@ def fdopen_fail_8(fd, mode):
# noinspection PyShadowingNames
+@pytest.mark.skipif(skip, reason=skip_reason)
def test_fail_alt_stdout(parser1, mock):
completer = CompletionFinder()
@@ -182,6 +202,7 @@ def fdopen_fail_9(fd, mode):
# noinspection PyShadowingNames
+@pytest.mark.skipif(skip, reason=skip_reason)
def test_fail_alt_stderr(parser1, capfd, mock):
completer = CompletionFinder()