Skip to content

Commit 9458307

Browse files
committed
Added unit tests
1 parent c4ee214 commit 9458307

File tree

1 file changed

+99
-1
lines changed

1 file changed

+99
-1
lines changed

tests/test_parsing.py

Lines changed: 99 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -296,7 +296,7 @@ def test_parse_redirect_append(parser):
296296
assert statement.output == '>>'
297297
assert statement.output_to == '/tmp/afile.txt'
298298

299-
def test_parse_pipe_and_redirect(parser):
299+
def test_parse_pipe_then_redirect(parser):
300300
line = 'output into;sufx | pipethrume plz > afile.txt'
301301
statement = parser.parse(line)
302302
assert statement.command == 'output'
@@ -310,6 +310,104 @@ def test_parse_pipe_and_redirect(parser):
310310
assert statement.output == ''
311311
assert statement.output_to == ''
312312

313+
def test_parse_multiple_pipes(parser):
314+
line = 'output into;sufx | pipethrume plz | grep blah'
315+
statement = parser.parse(line)
316+
assert statement.command == 'output'
317+
assert statement == 'into'
318+
assert statement.args == statement
319+
assert statement.argv == ['output', 'into']
320+
assert statement.arg_list == statement.argv[1:]
321+
assert statement.terminator == ';'
322+
assert statement.suffix == 'sufx'
323+
assert statement.pipe_to == 'pipethrume plz | grep blah'
324+
assert statement.output == ''
325+
assert statement.output_to == ''
326+
327+
def test_redirect_then_pipe(parser):
328+
line = 'help alias > file.txt | grep blah'
329+
statement = parser.parse(line)
330+
assert statement.command == 'help'
331+
assert statement == 'alias'
332+
assert statement.args == statement
333+
assert statement.argv == ['help', 'alias']
334+
assert statement.arg_list == statement.argv[1:]
335+
assert statement.terminator == ''
336+
assert statement.suffix == ''
337+
assert statement.pipe_to == ''
338+
assert statement.output == '>'
339+
assert statement.output_to == 'file.txt'
340+
341+
def test_append_then_pipe(parser):
342+
line = 'help alias >> file.txt | grep blah'
343+
statement = parser.parse(line)
344+
assert statement.command == 'help'
345+
assert statement == 'alias'
346+
assert statement.args == statement
347+
assert statement.argv == ['help', 'alias']
348+
assert statement.arg_list == statement.argv[1:]
349+
assert statement.terminator == ''
350+
assert statement.suffix == ''
351+
assert statement.pipe_to == ''
352+
assert statement.output == '>>'
353+
assert statement.output_to == 'file.txt'
354+
355+
def test_append_then_redirect(parser):
356+
line = 'help alias >> file.txt > file2.txt'
357+
statement = parser.parse(line)
358+
assert statement.command == 'help'
359+
assert statement == 'alias'
360+
assert statement.args == statement
361+
assert statement.argv == ['help', 'alias']
362+
assert statement.arg_list == statement.argv[1:]
363+
assert statement.terminator == ''
364+
assert statement.suffix == ''
365+
assert statement.pipe_to == ''
366+
assert statement.output == '>>'
367+
assert statement.output_to == 'file.txt'
368+
369+
def test_redirect_then_append(parser):
370+
line = 'help alias > file.txt >> file2.txt'
371+
statement = parser.parse(line)
372+
assert statement.command == 'help'
373+
assert statement == 'alias'
374+
assert statement.args == statement
375+
assert statement.argv == ['help', 'alias']
376+
assert statement.arg_list == statement.argv[1:]
377+
assert statement.terminator == ''
378+
assert statement.suffix == ''
379+
assert statement.pipe_to == ''
380+
assert statement.output == '>'
381+
assert statement.output_to == 'file.txt'
382+
383+
def test_redirect_to_quoted_string(parser):
384+
line = 'help alias > "file.txt"'
385+
statement = parser.parse(line)
386+
assert statement.command == 'help'
387+
assert statement == 'alias'
388+
assert statement.args == statement
389+
assert statement.argv == ['help', 'alias']
390+
assert statement.arg_list == statement.argv[1:]
391+
assert statement.terminator == ''
392+
assert statement.suffix == ''
393+
assert statement.pipe_to == ''
394+
assert statement.output == '>'
395+
assert statement.output_to == '"file.txt"'
396+
397+
def test_redirect_to_empty_quoted_string(parser):
398+
line = 'help alias > ""'
399+
statement = parser.parse(line)
400+
assert statement.command == 'help'
401+
assert statement == 'alias'
402+
assert statement.args == statement
403+
assert statement.argv == ['help', 'alias']
404+
assert statement.arg_list == statement.argv[1:]
405+
assert statement.terminator == ''
406+
assert statement.suffix == ''
407+
assert statement.pipe_to == ''
408+
assert statement.output == '>'
409+
assert statement.output_to == ''
410+
313411
def test_parse_output_to_paste_buffer(parser):
314412
line = 'output to paste buffer >> '
315413
statement = parser.parse(line)

0 commit comments

Comments
 (0)