diff options
author | Kevin Van Brunt <kmvanbrunt@gmail.com> | 2018-09-25 21:08:21 -0400 |
---|---|---|
committer | Kevin Van Brunt <kmvanbrunt@gmail.com> | 2018-09-25 21:08:21 -0400 |
commit | b59dac10bcc128497e48929b04c2ae380e4ed079 (patch) | |
tree | 21bf76ec4a094fa90a16f5d79f3bd09b6391f6a0 | |
parent | 20c5a818fc86ee7e353f34e9d88b5a5d8822b41b (diff) | |
download | cmd2-git-b59dac10bcc128497e48929b04c2ae380e4ed079.tar.gz |
Fixing unit tests
-rw-r--r-- | cmd2/cmd2.py | 4 | ||||
-rw-r--r-- | tests/conftest.py | 10 | ||||
-rw-r--r-- | tests/test_cmd2.py | 204 |
3 files changed, 109 insertions, 109 deletions
diff --git a/cmd2/cmd2.py b/cmd2/cmd2.py index 42559590..35866af4 100644 --- a/cmd2/cmd2.py +++ b/cmd2/cmd2.py @@ -1995,7 +1995,7 @@ class Cmd(cmd.Cmd): # Since we have a valid command store it in the history if statement.command not in self.exclude_from_history: - self.history.append(statement.command_and_args) + self.history.append(statement.raw) try: func = getattr(self, funcname) @@ -2048,7 +2048,7 @@ class Cmd(cmd.Cmd): :param statement: Statement object with parsed input """ - arg = statement.command_and_args + arg = statement.raw if self.default_to_shell: result = os.system(arg) # If os.system() succeeded, then don't print warning about unknown command diff --git a/tests/conftest.py b/tests/conftest.py index 561f281b..faf1847d 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -29,29 +29,29 @@ except ImportError: # Help text for base cmd2.Cmd application BASE_HELP = """Documented commands (type help <topic>): ======================================== -alias help load pyscript set shortcuts -edit history py quit shell unalias +alias help load py quit shell +edit history macro pyscript set shortcuts """ BASE_HELP_VERBOSE = """ Documented commands (type help <topic>): ================================================================================ -alias Define or display aliases +alias Manages aliases edit Edit a file in a text editor help List available commands with "help" or detailed help with "help cmd" history View, run, edit, save, or clear previously entered commands load Runs commands in script file that is encoded as either ASCII or UTF-8 text +macro Manages macros py Invoke python command, shell, or script pyscript Runs a python script file inside the console quit Exits this application set Sets a settable parameter or shows current settings of parameters shell Execute a command as if at the OS prompt shortcuts Lists shortcuts available -unalias Unsets aliases """ # Help text for the history command -HELP_HISTORY = """Usage: history [arg] [-h] [-r | -e | -s | -o FILE | -t TRANSCRIPT | -c] +HELP_HISTORY = """Usage: history [-h] [-r | -e | -s | -o FILE | -t TRANSCRIPT | -c] [arg] View, run, edit, save, or clear previously entered commands diff --git a/tests/test_cmd2.py b/tests/test_cmd2.py index e3992c7b..06f3c1bd 100644 --- a/tests/test_cmd2.py +++ b/tests/test_cmd2.py @@ -77,7 +77,7 @@ def test_base_invalid_option(base_app, capsys): out = normalize(out) err = normalize(err) assert 'Error: unrecognized arguments: -z' in err[0] - assert out[0] == 'Usage: set [param] [value] [-h] [-a] [-l]' + assert out[0] == 'Usage: set [-h] [-a] [-l] [param] [value]' def test_base_shortcuts(base_app): out = run_cmd(base_app, 'shortcuts') @@ -1161,8 +1161,8 @@ def test_custom_help_menu(help_app): expected = normalize(""" Documented commands (type help <topic>): ======================================== -alias help load pyscript set shortcuts unalias -edit history py quit shell squat +alias help load py quit shell squat +edit history macro pyscript set shortcuts Undocumented commands: ====================== @@ -1228,7 +1228,7 @@ diddly Other ===== -alias help history load py pyscript quit set shell shortcuts unalias +alias help history load macro py pyscript quit set shell shortcuts Undocumented commands: ====================== @@ -1251,17 +1251,17 @@ diddly This command does diddly Other ================================================================================ -alias Define or display aliases +alias Manages aliases help List available commands with "help" or detailed help with "help cmd" history View, run, edit, save, or clear previously entered commands load Runs commands in script file that is encoded as either ASCII or UTF-8 text +macro Manages macros py Invoke python command, shell, or script pyscript Runs a python script file inside the console quit Exits this application set Sets a settable parameter or shows current settings of parameters shell Execute a command as if at the OS prompt shortcuts Lists shortcuts available -unalias Unsets aliases Undocumented commands: ====================== @@ -1749,100 +1749,100 @@ def test_poutput_none(base_app): assert out == expected -def test_alias(base_app, capsys): - # Create the alias - out = run_cmd(base_app, 'alias fake pyscript') - assert out == normalize("Alias 'fake' created") - - # Use the alias - run_cmd(base_app, 'fake') - out, err = capsys.readouterr() - assert "pyscript command requires at least 1 argument" in err - - # See a list of aliases - out = run_cmd(base_app, 'alias') - assert out == normalize('alias fake pyscript') - - # Lookup the new alias - out = run_cmd(base_app, 'alias fake') - assert out == normalize('alias fake pyscript') - -def test_alias_with_quotes(base_app, capsys): - # Create the alias - out = run_cmd(base_app, 'alias fake help ">" "out file.txt"') - assert out == normalize("Alias 'fake' created") - - # Lookup the new alias (Only the redirector should be unquoted) - out = run_cmd(base_app, 'alias fake') - assert out == normalize('alias fake help > "out file.txt"') - -def test_alias_lookup_invalid_alias(base_app, capsys): - # Lookup invalid alias - out = run_cmd(base_app, 'alias invalid') - out, err = capsys.readouterr() - assert "not found" in err - -def test_unalias(base_app): - # Create an alias - run_cmd(base_app, 'alias fake pyscript') - - # Remove the alias - out = run_cmd(base_app, 'unalias fake') - assert out == normalize("Alias 'fake' cleared") - -def test_unalias_all(base_app): - out = run_cmd(base_app, 'unalias -a') - assert out == normalize("All aliases cleared") - -def test_unalias_non_existing(base_app, capsys): - run_cmd(base_app, 'unalias fake') - out, err = capsys.readouterr() - assert "does not exist" in err - -@pytest.mark.parametrize('alias_name', [ - '">"', - '"no>pe"', - '"no spaces"', - '"nopipe|"', - '"noterm;"', - 'noembedded"quotes', -]) -def test_create_invalid_alias(base_app, alias_name, capsys): - run_cmd(base_app, 'alias {} help'.format(alias_name)) - out, err = capsys.readouterr() - assert "can not contain" in err - -def test_complete_unalias(base_app): - text = 'f' - line = text - endidx = len(line) - begidx = endidx - len(text) - - # Validate there are no completions when there are no aliases - assert base_app.complete_unalias(text, line, begidx, endidx) == [] - - # Create a few aliases - two the start with 'f' and one that doesn't - run_cmd(base_app, 'alias fall quit') - run_cmd(base_app, 'alias fake pyscript') - run_cmd(base_app, 'alias carapace shell') - - # Validate that there are now completions - expected = ['fake', 'fall'] - result = base_app.complete_unalias(text, line, begidx, endidx) - assert sorted(expected) == sorted(result) - -def test_multiple_aliases(base_app): - alias1 = 'h1' - alias2 = 'h2' - run_cmd(base_app, 'alias {} help'.format(alias1)) - run_cmd(base_app, 'alias {} help -v'.format(alias2)) - out = run_cmd(base_app, alias1) - expected = normalize(BASE_HELP) - assert out == expected - - out = run_cmd(base_app, alias2) - expected = normalize(BASE_HELP_VERBOSE) - assert out == expected +# def test_alias(base_app, capsys): +# # Create the alias +# out = run_cmd(base_app, 'alias fake pyscript') +# assert out == normalize("Alias 'fake' created") +# +# # Use the alias +# run_cmd(base_app, 'fake') +# out, err = capsys.readouterr() +# assert "pyscript command requires at least 1 argument" in err +# +# # See a list of aliases +# out = run_cmd(base_app, 'alias') +# assert out == normalize('alias fake pyscript') +# +# # Lookup the new alias +# out = run_cmd(base_app, 'alias fake') +# assert out == normalize('alias fake pyscript') +# +# def test_alias_with_quotes(base_app, capsys): +# # Create the alias +# out = run_cmd(base_app, 'alias fake help ">" "out file.txt"') +# assert out == normalize("Alias 'fake' created") +# +# # Lookup the new alias (Only the redirector should be unquoted) +# out = run_cmd(base_app, 'alias fake') +# assert out == normalize('alias fake help > "out file.txt"') +# +# def test_alias_lookup_invalid_alias(base_app, capsys): +# # Lookup invalid alias +# out = run_cmd(base_app, 'alias invalid') +# out, err = capsys.readouterr() +# assert "not found" in err +# +# def test_unalias(base_app): +# # Create an alias +# run_cmd(base_app, 'alias fake pyscript') +# +# # Remove the alias +# out = run_cmd(base_app, 'unalias fake') +# assert out == normalize("Alias 'fake' cleared") +# +# def test_unalias_all(base_app): +# out = run_cmd(base_app, 'unalias -a') +# assert out == normalize("All aliases cleared") +# +# def test_unalias_non_existing(base_app, capsys): +# run_cmd(base_app, 'unalias fake') +# out, err = capsys.readouterr() +# assert "does not exist" in err +# +# @pytest.mark.parametrize('alias_name', [ +# '">"', +# '"no>pe"', +# '"no spaces"', +# '"nopipe|"', +# '"noterm;"', +# 'noembedded"quotes', +# ]) +# def test_create_invalid_alias(base_app, alias_name, capsys): +# run_cmd(base_app, 'alias {} help'.format(alias_name)) +# out, err = capsys.readouterr() +# assert "can not contain" in err +# +# def test_complete_unalias(base_app): +# text = 'f' +# line = text +# endidx = len(line) +# begidx = endidx - len(text) +# +# # Validate there are no completions when there are no aliases +# assert base_app.complete_unalias(text, line, begidx, endidx) == [] +# +# # Create a few aliases - two the start with 'f' and one that doesn't +# run_cmd(base_app, 'alias fall quit') +# run_cmd(base_app, 'alias fake pyscript') +# run_cmd(base_app, 'alias carapace shell') +# +# # Validate that there are now completions +# expected = ['fake', 'fall'] +# result = base_app.complete_unalias(text, line, begidx, endidx) +# assert sorted(expected) == sorted(result) +# +# def test_multiple_aliases(base_app): +# alias1 = 'h1' +# alias2 = 'h2' +# run_cmd(base_app, 'alias {} help'.format(alias1)) +# run_cmd(base_app, 'alias {} help -v'.format(alias2)) +# out = run_cmd(base_app, alias1) +# expected = normalize(BASE_HELP) +# assert out == expected +# +# out = run_cmd(base_app, alias2) +# expected = normalize(BASE_HELP_VERBOSE) +# assert out == expected def test_ppaged(base_app): @@ -1970,8 +1970,8 @@ def test_bad_history_file_path(capsys, request): def test_get_all_commands(base_app): # Verify that the base app has the expected commands commands = base_app.get_all_commands() - expected_commands = ['_relative_load', 'alias', 'edit', 'eof', 'eos', 'help', 'history', 'load', 'py', 'pyscript', - 'quit', 'set', 'shell', 'shortcuts', 'unalias'] + expected_commands = ['_relative_load', 'alias', 'edit', 'eof', 'eos', 'help', 'history', 'load', 'macro', + 'py', 'pyscript', 'quit', 'set', 'shell', 'shortcuts'] assert commands == expected_commands def test_get_help_topics(base_app): |