diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test_parsing.py | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/tests/test_parsing.py b/tests/test_parsing.py index 6e795660..589b6e7f 100644 --- a/tests/test_parsing.py +++ b/tests/test_parsing.py @@ -376,7 +376,7 @@ def test_parse_multiline_with_complete_comment(parser): assert statement.argv == ['multiline', 'command', 'is', 'done'] assert statement.terminator == ';' -def test_parse_multiline_termninated_by_empty_line(parser): +def test_parse_multiline_terminated_by_empty_line(parser): line = 'multiline command ends\n\n' statement = parser.parse(line) assert statement.multiline_command == 'multiline' @@ -386,6 +386,23 @@ def test_parse_multiline_termninated_by_empty_line(parser): assert statement.argv == ['multiline', 'command', 'ends'] assert statement.terminator == '\n' +@pytest.mark.parametrize('line,terminator',[ + ('multiline command "with\nembedded newline";', ';'), + ('multiline command "with\nembedded newline";;;', ';'), + ('multiline command "with\nembedded newline";; ;;', ';'), + ('multiline command "with\nembedded newline" &', '&'), + ('multiline command "with\nembedded newline" & &', '&'), + ('multiline command "with\nembedded newline"\n\n', '\n'), +]) +def test_parse_multiline_with_embedded_newline(parser, line, terminator): + statement = parser.parse(line) + assert statement.multiline_command == 'multiline' + assert statement.command == 'multiline' + assert statement.args == 'command "with\nembedded newline"' + assert statement == statement.args + assert statement.argv == ['multiline', 'command', 'with\nembedded newline'] + assert statement.terminator == terminator + def test_parse_multiline_ignores_terminators_in_comments(parser): line = 'multiline command "with term; ends" now\n\n' statement = parser.parse(line) |