summaryrefslogtreecommitdiff
path: root/tests/test_cmd2.py
diff options
context:
space:
mode:
authorKevin Van Brunt <kmvanbrunt@gmail.com>2018-09-26 22:59:31 -0400
committerKevin Van Brunt <kmvanbrunt@gmail.com>2018-09-26 22:59:31 -0400
commit7b334ecf9b189c96644d599c84eb6d0fdc5ddddf (patch)
treec00bafcb02d9ae59091a202c4be1115812cf28f8 /tests/test_cmd2.py
parent3b5c671b40d6b69315fd1c8f85f638e7b0bd6ab8 (diff)
downloadcmd2-git-7b334ecf9b189c96644d599c84eb6d0fdc5ddddf.tar.gz
More unit tests for aliases and macros
Diffstat (limited to 'tests/test_cmd2.py')
-rw-r--r--tests/test_cmd2.py40
1 files changed, 21 insertions, 19 deletions
diff --git a/tests/test_cmd2.py b/tests/test_cmd2.py
index 8900a14f..0468dd36 100644
--- a/tests/test_cmd2.py
+++ b/tests/test_cmd2.py
@@ -1765,9 +1765,10 @@ def test_poutput_color_never(base_app):
assert out == expected
-# These are invalid targets for aliases and macros
-invalid_alias_and_macro_targets = [
+# These are invalid names for aliases and macros
+invalid_command_name = [
'""', # Blank name
+ '!no_shortcut',
'">"',
'"no>pe"',
'"no spaces"',
@@ -1776,9 +1777,6 @@ invalid_alias_and_macro_targets = [
'noembedded"quotes',
]
-# These are invalid names for aliases and macros
-invalid_alias_and_macro_names = invalid_alias_and_macro_targets + ['!no_shortcut']
-
def test_get_alias_names(base_app):
assert len(base_app.aliases) == 0
run_cmd(base_app, 'alias create fake pyscript')
@@ -1793,6 +1791,10 @@ def test_get_macro_names(base_app):
assert len(base_app.macros) == 2
assert sorted(base_app.get_macro_names()) == ['bar', 'foo']
+def test_alias_no_subcommand(base_app, capsys):
+ out = run_cmd(base_app, 'alias')
+ assert "Usage: alias [-h]" in out[0]
+
def test_alias_create(base_app, capsys):
# Create the alias
out = run_cmd(base_app, 'alias create fake pyscript')
@@ -1820,7 +1822,7 @@ def test_alias_create_with_quotes(base_app, capsys):
out = run_cmd(base_app, 'alias list fake')
assert out == normalize('alias create fake help > "out file.txt"')
-@pytest.mark.parametrize('alias_name', invalid_alias_and_macro_names)
+@pytest.mark.parametrize('alias_name', invalid_command_name)
def test_alias_create_invalid_name(base_app, alias_name, capsys):
run_cmd(base_app, 'alias create {} help'.format(alias_name))
out, err = capsys.readouterr()
@@ -1833,12 +1835,6 @@ def test_alias_create_with_macro_name(base_app, capsys):
out, err = capsys.readouterr()
assert "Aliases cannot have the same name as a macro" in err
-@pytest.mark.parametrize('alias_target', invalid_alias_and_macro_targets)
-def test_alias_create_with_invalid_target(base_app, alias_target, capsys):
- run_cmd(base_app, 'alias create my_alias {}'.format(alias_target))
- out, err = capsys.readouterr()
- assert "Invalid alias target" in err
-
def test_alias_list_invalid_alias(base_app, capsys):
# Look up invalid alias
out = run_cmd(base_app, 'alias list invalid')
@@ -1862,6 +1858,10 @@ def test_alias_delete_non_existing(base_app, capsys):
out, err = capsys.readouterr()
assert "Alias 'fake' does not exist" in err
+def test_alias_delete_no_name(base_app, capsys):
+ out = run_cmd(base_app, 'alias delete')
+ assert "Usage: alias delete" in out[0]
+
def test_multiple_aliases(base_app):
alias1 = 'h1'
alias2 = 'h2'
@@ -1875,6 +1875,10 @@ def test_multiple_aliases(base_app):
expected = normalize(BASE_HELP_VERBOSE)
assert out == expected
+def test_macro_no_subcommand(base_app, capsys):
+ out = run_cmd(base_app, 'macro')
+ assert "Usage: macro [-h]" in out[0]
+
def test_macro_create(base_app, capsys):
# Create the macro
out = run_cmd(base_app, 'macro create fake pyscript')
@@ -1902,7 +1906,7 @@ def test_macro_create_with_quotes(base_app, capsys):
out = run_cmd(base_app, 'macro list fake')
assert out == normalize('macro create fake help > "out file.txt"')
-@pytest.mark.parametrize('macro_name', invalid_alias_and_macro_names)
+@pytest.mark.parametrize('macro_name', invalid_command_name)
def test_macro_create_invalid_name(base_app, macro_name, capsys):
run_cmd(base_app, 'macro create {} help'.format(macro_name))
out, err = capsys.readouterr()
@@ -1921,12 +1925,6 @@ def test_macro_create_with_command_name(base_app, capsys):
out, err = capsys.readouterr()
assert "Macros cannot have the same name as a command" in err
-@pytest.mark.parametrize('macro_target', invalid_alias_and_macro_targets)
-def test_macro_create_with_invalid_target(base_app, macro_target, capsys):
- run_cmd(base_app, 'macro create my_macro {}'.format(macro_target))
- out, err = capsys.readouterr()
- assert "Invalid macro target" in err
-
def test_macro_create_with_args(base_app, capsys):
# Create the macro
out = run_cmd(base_app, 'macro create fake {1} {2}')
@@ -1981,6 +1979,10 @@ def test_macro_delete_non_existing(base_app, capsys):
out, err = capsys.readouterr()
assert "Macro 'fake' does not exist" in err
+def test_macro_delete_no_name(base_app, capsys):
+ out = run_cmd(base_app, 'macro delete')
+ assert "Usage: macro delete" in out[0]
+
def test_multiple_macros(base_app):
macro1 = 'h1'
macro2 = 'h2'