summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorKevin Van Brunt <kmvanbrunt@gmail.com>2019-05-13 13:12:24 -0400
committerKevin Van Brunt <kmvanbrunt@gmail.com>2019-05-13 13:12:24 -0400
commit94583078ce4018b6abe0dc2898958fee1acf96e3 (patch)
treebace76769d869d9ce0f0bbef34f38349685776af /tests
parentc4ee21446e1507ebd5c42a521fa2c0bcb2648c85 (diff)
downloadcmd2-git-94583078ce4018b6abe0dc2898958fee1acf96e3.tar.gz
Added unit tests
Diffstat (limited to 'tests')
-rw-r--r--tests/test_parsing.py100
1 files changed, 99 insertions, 1 deletions
diff --git a/tests/test_parsing.py b/tests/test_parsing.py
index bd9648dc..9d92c876 100644
--- a/tests/test_parsing.py
+++ b/tests/test_parsing.py
@@ -296,7 +296,7 @@ def test_parse_redirect_append(parser):
assert statement.output == '>>'
assert statement.output_to == '/tmp/afile.txt'
-def test_parse_pipe_and_redirect(parser):
+def test_parse_pipe_then_redirect(parser):
line = 'output into;sufx | pipethrume plz > afile.txt'
statement = parser.parse(line)
assert statement.command == 'output'
@@ -310,6 +310,104 @@ def test_parse_pipe_and_redirect(parser):
assert statement.output == ''
assert statement.output_to == ''
+def test_parse_multiple_pipes(parser):
+ line = 'output into;sufx | pipethrume plz | grep blah'
+ statement = parser.parse(line)
+ assert statement.command == 'output'
+ assert statement == 'into'
+ assert statement.args == statement
+ assert statement.argv == ['output', 'into']
+ assert statement.arg_list == statement.argv[1:]
+ assert statement.terminator == ';'
+ assert statement.suffix == 'sufx'
+ assert statement.pipe_to == 'pipethrume plz | grep blah'
+ assert statement.output == ''
+ assert statement.output_to == ''
+
+def test_redirect_then_pipe(parser):
+ line = 'help alias > file.txt | grep blah'
+ statement = parser.parse(line)
+ assert statement.command == 'help'
+ assert statement == 'alias'
+ assert statement.args == statement
+ assert statement.argv == ['help', 'alias']
+ assert statement.arg_list == statement.argv[1:]
+ assert statement.terminator == ''
+ assert statement.suffix == ''
+ assert statement.pipe_to == ''
+ assert statement.output == '>'
+ assert statement.output_to == 'file.txt'
+
+def test_append_then_pipe(parser):
+ line = 'help alias >> file.txt | grep blah'
+ statement = parser.parse(line)
+ assert statement.command == 'help'
+ assert statement == 'alias'
+ assert statement.args == statement
+ assert statement.argv == ['help', 'alias']
+ assert statement.arg_list == statement.argv[1:]
+ assert statement.terminator == ''
+ assert statement.suffix == ''
+ assert statement.pipe_to == ''
+ assert statement.output == '>>'
+ assert statement.output_to == 'file.txt'
+
+def test_append_then_redirect(parser):
+ line = 'help alias >> file.txt > file2.txt'
+ statement = parser.parse(line)
+ assert statement.command == 'help'
+ assert statement == 'alias'
+ assert statement.args == statement
+ assert statement.argv == ['help', 'alias']
+ assert statement.arg_list == statement.argv[1:]
+ assert statement.terminator == ''
+ assert statement.suffix == ''
+ assert statement.pipe_to == ''
+ assert statement.output == '>>'
+ assert statement.output_to == 'file.txt'
+
+def test_redirect_then_append(parser):
+ line = 'help alias > file.txt >> file2.txt'
+ statement = parser.parse(line)
+ assert statement.command == 'help'
+ assert statement == 'alias'
+ assert statement.args == statement
+ assert statement.argv == ['help', 'alias']
+ assert statement.arg_list == statement.argv[1:]
+ assert statement.terminator == ''
+ assert statement.suffix == ''
+ assert statement.pipe_to == ''
+ assert statement.output == '>'
+ assert statement.output_to == 'file.txt'
+
+def test_redirect_to_quoted_string(parser):
+ line = 'help alias > "file.txt"'
+ statement = parser.parse(line)
+ assert statement.command == 'help'
+ assert statement == 'alias'
+ assert statement.args == statement
+ assert statement.argv == ['help', 'alias']
+ assert statement.arg_list == statement.argv[1:]
+ assert statement.terminator == ''
+ assert statement.suffix == ''
+ assert statement.pipe_to == ''
+ assert statement.output == '>'
+ assert statement.output_to == '"file.txt"'
+
+def test_redirect_to_empty_quoted_string(parser):
+ line = 'help alias > ""'
+ statement = parser.parse(line)
+ assert statement.command == 'help'
+ assert statement == 'alias'
+ assert statement.args == statement
+ assert statement.argv == ['help', 'alias']
+ assert statement.arg_list == statement.argv[1:]
+ assert statement.terminator == ''
+ assert statement.suffix == ''
+ assert statement.pipe_to == ''
+ assert statement.output == '>'
+ assert statement.output_to == ''
+
def test_parse_output_to_paste_buffer(parser):
line = 'output to paste buffer >> '
statement = parser.parse(line)