summaryrefslogtreecommitdiff
path: root/tests/test_cmd2.py
diff options
context:
space:
mode:
authorTodd Leonhardt <todd.leonhardt@gmail.com>2017-09-23 16:55:20 -0400
committerTodd Leonhardt <todd.leonhardt@gmail.com>2017-09-23 16:55:20 -0400
commite991c206cf30a947562c04e4250b47b3c2c4623d (patch)
treeeaf73a06a6e932fb0962f6a550e7cf816fc21305 /tests/test_cmd2.py
parent2aa1d9b7b4d7b9eb3e8ff078ab1893d4b5e95090 (diff)
downloadcmd2-git-e991c206cf30a947562c04e4250b47b3c2c4623d.tar.gz
Added some unit tests to cover new code
Diffstat (limited to 'tests/test_cmd2.py')
-rw-r--r--tests/test_cmd2.py64
1 files changed, 56 insertions, 8 deletions
diff --git a/tests/test_cmd2.py b/tests/test_cmd2.py
index 0ea3db4d..c395acc3 100644
--- a/tests/test_cmd2.py
+++ b/tests/test_cmd2.py
@@ -812,7 +812,29 @@ def test_edit_file_with_spaces(base_app, request, monkeypatch):
# We think we have an editor, so should expect a system call
m.assert_called_once_with('"{}" "{}"'.format(base_app.editor, filename))
-def test_edit_number(base_app, monkeypatch):
+def test_edit_blank(base_app, monkeypatch):
+ # Set a fake editor just to make sure we have one. We aren't really going to call it due to the mock
+ base_app.editor = 'fooedit'
+
+ # Mock out the os.system call so we don't actually open an editor
+ m = mock.MagicMock(name='system')
+ monkeypatch.setattr("os.system", m)
+
+ # Run help command just so we have a command in history
+ run_cmd(base_app, 'help')
+
+ run_cmd(base_app, 'edit')
+
+ # We have an editor, so should expect a system call
+ m.assert_called_once()
+
+def test_edit_empty_history(base_app, capsys):
+ run_cmd(base_app, 'edit')
+ out, err = capsys.readouterr()
+ assert out == ''
+ assert err == 'ERROR: edit must be called with argument if history is empty\n'
+
+def test_edit_valid_positive_number(base_app, monkeypatch):
# Set a fake editor just to make sure we have one. We aren't really going to call it due to the mock
base_app.editor = 'fooedit'
@@ -828,7 +850,7 @@ def test_edit_number(base_app, monkeypatch):
# We have an editor, so should expect a system call
m.assert_called_once()
-def test_edit_blank(base_app, monkeypatch):
+def test_edit_valid_negative_number(base_app, monkeypatch):
# Set a fake editor just to make sure we have one. We aren't really going to call it due to the mock
base_app.editor = 'fooedit'
@@ -839,16 +861,42 @@ def test_edit_blank(base_app, monkeypatch):
# Run help command just so we have a command in history
run_cmd(base_app, 'help')
- run_cmd(base_app, 'edit')
+ run_cmd(base_app, 'edit "-1"')
# We have an editor, so should expect a system call
m.assert_called_once()
-def test_edit_empty_history(base_app, capsys):
- run_cmd(base_app, 'edit')
- out, err = capsys.readouterr()
- assert out == ''
- assert err == 'ERROR: edit must be called with argument if history is empty\n'
+def test_edit_invalid_positive_number(base_app, monkeypatch):
+ # Set a fake editor just to make sure we have one. We aren't really going to call it due to the mock
+ base_app.editor = 'fooedit'
+
+ # Mock out the os.system call so we don't actually open an editor
+ m = mock.MagicMock(name='system')
+ monkeypatch.setattr("os.system", m)
+
+ # Run help command just so we have a command in history
+ run_cmd(base_app, 'help')
+
+ run_cmd(base_app, 'edit 23')
+
+ # History index is invalid, so should expect a system call
+ m.assert_not_called()
+
+def test_edit_invalid_negative_number(base_app, monkeypatch):
+ # Set a fake editor just to make sure we have one. We aren't really going to call it due to the mock
+ base_app.editor = 'fooedit'
+
+ # Mock out the os.system call so we don't actually open an editor
+ m = mock.MagicMock(name='system')
+ monkeypatch.setattr("os.system", m)
+
+ # Run help command just so we have a command in history
+ run_cmd(base_app, 'help')
+
+ run_cmd(base_app, 'edit "-23"')
+
+ # History index is invalid, so should expect a system call
+ m.assert_not_called()
def test_base_py_interactive(base_app):