summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/test_cmd2.py36
-rw-r--r--tests/test_parsing.py9
2 files changed, 45 insertions, 0 deletions
diff --git a/tests/test_cmd2.py b/tests/test_cmd2.py
index 7e393b7b..8d91c8ef 100644
--- a/tests/test_cmd2.py
+++ b/tests/test_cmd2.py
@@ -1282,3 +1282,39 @@ def test_echo(capsys):
assert app.cmdqueue == []
assert app._current_script_dir is None
assert out.startswith('help history\n' + 'history [arg]: lists past commands issued')
+
+
+def test_raw_input(base_app):
+ base_app.use_raw_input = True
+ fake_input = 'quit'
+
+ # Mock out the input call so we don't actually wait for a user's response on stdin
+ m = mock.Mock(name='input', return_value=fake_input)
+ sm.input = m
+
+ line = base_app.pseudo_raw_input('(cmd2)')
+ assert line == fake_input
+
+def test_stdin_input():
+ app = cmd2.Cmd()
+ app.use_rawinput = False
+ fake_input = 'quit'
+
+ # Mock out the readline call so we don't actually read from stdin
+ m = mock.Mock(name='readline', return_value=fake_input)
+ app.stdin.readline = m
+
+ line = app.pseudo_raw_input('(cmd2)')
+ assert line == fake_input
+
+def test_empty_stdin_input():
+ app = cmd2.Cmd()
+ app.use_rawinput = False
+ fake_input = ''
+
+ # Mock out the readline call so we don't actually read from stdin
+ m = mock.Mock(name='readline', return_value=fake_input)
+ app.stdin.readline = m
+
+ line = app.pseudo_raw_input('(cmd2)')
+ assert line == 'EOF'
diff --git a/tests/test_parsing.py b/tests/test_parsing.py
index 254aef15..bcb19f10 100644
--- a/tests/test_parsing.py
+++ b/tests/test_parsing.py
@@ -329,3 +329,12 @@ def test_option_parser_exit_with_msg(option_parser, capsys):
out, err = capsys.readouterr()
assert out == msg + '\n'
assert err == ''
+
+
+def test_empty_statement_raises_exception():
+ app = cmd2.Cmd()
+ with pytest.raises(cmd2.EmptyStatement):
+ app._complete_statement('')
+
+ with pytest.raises(cmd2.EmptyStatement):
+ app._complete_statement(' ')