diff options
author | Todd Leonhardt <todd.leonhardt@gmail.com> | 2018-07-17 18:22:53 -0400 |
---|---|---|
committer | Todd Leonhardt <todd.leonhardt@gmail.com> | 2018-07-17 18:22:53 -0400 |
commit | 83186531c103a84fd98a2310d17f106f2f07f0fb (patch) | |
tree | 6a117bc972c98a4df893528faa62c89bb99c7c83 /tests | |
parent | e87c675aad8198aac07cd15394c69ff41341ffaf (diff) | |
parent | 9df22b9305b918034217dee6721dc348a4610e65 (diff) | |
download | cmd2-git-83186531c103a84fd98a2310d17f106f2f07f0fb.tar.gz |
Merged master with bug fix for #474
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test_parsing.py | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/tests/test_parsing.py b/tests/test_parsing.py index 7a091720..6e795660 100644 --- a/tests/test_parsing.py +++ b/tests/test_parsing.py @@ -180,6 +180,20 @@ def test_parse_c_comment_empty(parser): assert not statement.argv assert statement == '' +def test_parse_c_comment_no_closing(parser): + statement = parser.parse('cat /tmp/*.txt') + assert statement.command == 'cat' + assert statement.args == '/tmp/*.txt' + assert not statement.pipe_to + assert statement.argv == ['cat', '/tmp/*.txt'] + +def test_parse_c_comment_multiple_opening(parser): + statement = parser.parse('cat /tmp/*.txt /tmp/*.cfg') + assert statement.command == 'cat' + assert statement.args == '/tmp/*.txt /tmp/*.cfg' + assert not statement.pipe_to + assert statement.argv == ['cat', '/tmp/*.txt', '/tmp/*.cfg'] + def test_parse_what_if_quoted_strings_seem_to_start_comments(parser): statement = parser.parse('what if "quoted strings /* seem to " start comments?') assert statement.command == 'what' @@ -344,14 +358,13 @@ def test_parse_multiline_command_ignores_redirectors_within_it(parser, line, ter def test_parse_multiline_with_incomplete_comment(parser): """A terminator within a comment will be ignored and won't terminate a multiline command. Un-closed comments effectively comment out everything after the start.""" - line = 'multiline command /* with comment in progress;' + line = 'multiline command /* with unclosed comment;' statement = parser.parse(line) assert statement.multiline_command == 'multiline' assert statement.command == 'multiline' - assert statement.args == 'command' - assert statement == statement.args - assert statement.argv == ['multiline', 'command'] - assert not statement.terminator + assert statement.args == 'command /* with unclosed comment' + assert statement.argv == ['multiline', 'command', '/*', 'with', 'unclosed', 'comment'] + assert statement.terminator == ';' def test_parse_multiline_with_complete_comment(parser): line = 'multiline command /* with comment complete */ is done;' |