diff options
author | Todd Leonhardt <todd.leonhardt@gmail.com> | 2018-09-08 16:21:02 -0400 |
---|---|---|
committer | Todd Leonhardt <todd.leonhardt@gmail.com> | 2018-09-08 16:21:02 -0400 |
commit | e2adc8fe379aa40142d8fee1414a5b563084b704 (patch) | |
tree | 9fd652f24f54f7b9bab41205520eea6bcafe8c02 /tests/test_parsing.py | |
parent | a318745bed432fcd0527e691406c238c0d4d07fc (diff) | |
download | cmd2-git-e2adc8fe379aa40142d8fee1414a5b563084b704.tar.gz |
Took a stab at improving documentation and unit tests for Statement.parse_command_only()
Also slightly improved a few other unit tests
Diffstat (limited to 'tests/test_parsing.py')
-rw-r--r-- | tests/test_parsing.py | 60 |
1 files changed, 50 insertions, 10 deletions
diff --git a/tests/test_parsing.py b/tests/test_parsing.py index b4de88ad..b0d370ac 100644 --- a/tests/test_parsing.py +++ b/tests/test_parsing.py @@ -32,11 +32,40 @@ def default_parser(): parser = StatementParser() return parser -def test_parse_empty_string_default(default_parser): - statement = default_parser.parse('') + +def test_parse_empty_string(parser): + line = '' + statement = parser.parse(line) + assert statement == '' + assert statement.args == statement + assert statement.raw == line assert statement.command == '' + assert statement.arg_list == [] + assert statement.multiline_command == '' + assert statement.terminator == '' + assert statement.suffix == '' + assert statement.pipe_to == [] + assert statement.output == '' + assert statement.output_to == '' + assert statement.command_and_args == line + assert statement.argv == statement.arg_list + +def test_parse_empty_string_default(default_parser): + line = '' + statement = default_parser.parse(line) assert statement == '' - assert statement.raw == '' + assert statement.args == statement + assert statement.raw == line + assert statement.command == '' + assert statement.arg_list == [] + assert statement.multiline_command == '' + assert statement.terminator == '' + assert statement.suffix == '' + assert statement.pipe_to == [] + assert statement.output == '' + assert statement.output_to == '' + assert statement.command_and_args == line + assert statement.argv == statement.arg_list @pytest.mark.parametrize('line,tokens', [ ('command', ['command']), @@ -52,12 +81,6 @@ def test_tokenize_default(default_parser, line, tokens): tokens_to_test = default_parser.tokenize(line) assert tokens_to_test == tokens -def test_parse_empty_string(parser): - statement = parser.parse('') - assert statement.command == '' - assert statement == '' - assert statement.raw == '' - @pytest.mark.parametrize('line,tokens', [ ('command', ['command']), ('command /* with some comment */ arg', ['command', 'arg']), @@ -100,6 +123,15 @@ def test_parse_single_word(parser, line): assert statement == '' assert statement.argv == [utils.strip_quotes(line)] assert not statement.arg_list + assert statement.args == statement + assert statement.raw == line + assert statement.multiline_command == '' + assert statement.terminator == '' + assert statement.suffix == '' + assert statement.pipe_to == [] + assert statement.output == '' + assert statement.output_to == '' + assert statement.command_and_args == line @pytest.mark.parametrize('line,terminator', [ ('termbare;', ';'), @@ -550,10 +582,18 @@ def test_parse_alias_terminator_no_whitespace(parser, line): def test_parse_command_only_command_and_args(parser): line = 'help history' statement = parser.parse_command_only(line) - assert statement.command == 'help' assert statement == 'history' assert statement.args == statement + assert statement.raw == line + assert statement.command == 'help' assert statement.command_and_args == line + assert statement.arg_list == [] + assert statement.multiline_command == '' + assert statement.terminator == '' + assert statement.suffix == '' + assert statement.pipe_to == [] + assert statement.output == '' + assert statement.output_to == '' def test_parse_command_only_emptyline(parser): line = '' |