diff options
author | kotfu <kotfu@kotfu.net> | 2018-04-26 20:21:52 -0600 |
---|---|---|
committer | kotfu <kotfu@kotfu.net> | 2018-04-26 20:21:52 -0600 |
commit | 739d3f42715e59b61432cd7fbedacae4a4f80a16 (patch) | |
tree | d138c0c890c9568d019decfdb631e29777f6c387 /tests | |
parent | 05ee395f0d487fc67979ce3d0824bdaadff5c811 (diff) | |
download | cmd2-git-739d3f42715e59b61432cd7fbedacae4a4f80a16.tar.gz |
First stage of refactoring cmd2.parseline() for tab completion
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test_completion.py | 38 | ||||
-rw-r--r-- | tests/test_parsing.py | 38 |
2 files changed, 37 insertions, 39 deletions
diff --git a/tests/test_completion.py b/tests/test_completion.py index cf45f281..f916f2e8 100644 --- a/tests/test_completion.py +++ b/tests/test_completion.py @@ -581,44 +581,6 @@ def test_tokens_for_completion_redirect_off(cmd2_app): assert expected_tokens == tokens assert expected_raw_tokens == raw_tokens -def test_parseline_command_and_args(cmd2_app): - line = 'help history' - command, args, out_line = cmd2_app.parseline(line) - assert command == 'help' - assert args == 'history' - assert line == out_line - -def test_parseline_emptyline(cmd2_app): - line = '' - command, args, out_line = cmd2_app.parseline(line) - assert command is None - assert args is None - assert line is out_line - -def test_parseline_strips_line(cmd2_app): - line = ' help history ' - command, args, out_line = cmd2_app.parseline(line) - assert command == 'help' - assert args == 'history' - assert line.strip() == out_line - -def test_parseline_expands_alias(cmd2_app): - # Create the alias - cmd2_app.do_alias(['fake', 'pyscript']) - - line = 'fake foobar.py' - command, args, out_line = cmd2_app.parseline(line) - assert command == 'pyscript' - assert args == 'foobar.py' - assert line.replace('fake', 'pyscript') == out_line - -def test_parseline_expands_shortcuts(cmd2_app): - line = '!cat foobar.txt' - command, args, out_line = cmd2_app.parseline(line) - assert command == 'shell' - assert args == 'cat foobar.txt' - assert line.replace('!', 'shell ') == out_line - def test_add_opening_quote_basic_no_text(cmd2_app): text = '' line = 'test_basic {}'.format(text) diff --git a/tests/test_parsing.py b/tests/test_parsing.py index 1913938e..d7a872b3 100644 --- a/tests/test_parsing.py +++ b/tests/test_parsing.py @@ -19,7 +19,7 @@ def parser(): redirection_chars=['|', '<', '>'], terminators = [';'], multilineCommands = ['multiline'], - aliases = {'helpalias': 'help', '42': 'theanswer', 'anothermultiline': 'multiline'}, + aliases = {'helpalias': 'help', '42': 'theanswer', 'anothermultiline': 'multiline', 'fake': 'pyscript'}, shortcuts = [('?', 'help'), ('!', 'shell')] ) return parser @@ -27,6 +27,8 @@ def parser(): def test_parse_empty_string(parser): statement = parser.parse('') assert not statement.command + assert not statement.args + assert statement.raw == '' @pytest.mark.parametrize('tokens,command,args', [ ( [], None, ''), @@ -287,3 +289,37 @@ def test_alias_on_multiline_command(parser): assert statement.command == 'multiline' assert statement.args == 'has > inside an unfinished command' assert not statement.terminator + +def test_parse_command_only_command_and_args(parser): + line = 'help history' + statement = parser.parse_command_only(line) + assert statement.command == 'help' + assert statement.args == 'history' + assert statement.command_and_args == line + +def test_parse_command_only_emptyline(parser): + line = '' + statement = parser.parse_command_only(line) + assert statement.command is None + assert statement.args is '' + assert statement.command_and_args is line + +def test_parse_command_only_strips_line(parser): + line = ' help history ' + statement = parser.parse_command_only(line) + assert statement.command == 'help' + assert statement.args == 'history' + assert statement.command_and_args == line.strip() + +def test_parse_command_only_expands_alias(parser): + line = 'fake foobar.py' + statement = parser.parse_command_only(line) + assert statement.command == 'pyscript' + assert statement.args == 'foobar.py' + +def test_parse_command_only_expands_shortcuts(parser): + line = '!cat foobar.txt' + statement = parser.parse_command_only(line) + assert statement.command == 'shell' + assert statement.args == 'cat foobar.txt' + assert statement.command_and_args == line.replace('!', 'shell ') |