diff options
author | Todd Leonhardt <todd.leonhardt@gmail.com> | 2018-06-07 16:52:17 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-06-07 16:52:17 -0700 |
commit | e4d13c745b7b983eb444e97f467b572a885d220c (patch) | |
tree | 97aa7c7151cc8f5c6923d0d965d650af75d7115e /tests/test_cmd2.py | |
parent | dde5207c22d041b97981de47758317d15a3fc329 (diff) | |
parent | d0e71c85190b81bb269cc18bf9380a142e18d707 (diff) | |
download | cmd2-git-e4d13c745b7b983eb444e97f467b572a885d220c.tar.gz |
Merge branch 'master' into autocompleter
Diffstat (limited to 'tests/test_cmd2.py')
-rw-r--r-- | tests/test_cmd2.py | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/tests/test_cmd2.py b/tests/test_cmd2.py index 24a14ea2..37592da1 100644 --- a/tests/test_cmd2.py +++ b/tests/test_cmd2.py @@ -615,6 +615,44 @@ def test_output_redirection(base_app): finally: os.remove(filename) +def test_output_redirection_to_nonexistent_directory(base_app): + filename = '~/fakedir/this_does_not_exist.txt' + + # Verify that writing to a file in a non-existent directory doesn't work + run_cmd(base_app, 'help > {}'.format(filename)) + expected = normalize(BASE_HELP) + with pytest.raises(FileNotFoundError): + with open(filename) as f: + content = normalize(f.read()) + assert content == expected + + # Verify that appending to a file also works + run_cmd(base_app, 'help history >> {}'.format(filename)) + expected = normalize(BASE_HELP + '\n' + HELP_HISTORY) + with pytest.raises(FileNotFoundError): + with open(filename) as f: + content = normalize(f.read()) + assert content == expected + +def test_output_redirection_to_too_long_filename(base_app): + filename = '~/sdkfhksdjfhkjdshfkjsdhfkjsdhfkjdshfkjdshfkjshdfkhdsfkjhewfuihewiufhweiufhiweufhiuewhiuewhfiuwehfiuewhfiuewhfiuewhfiuewhiuewhfiuewhfiuewfhiuwehewiufhewiuhfiweuhfiuwehfiuewfhiuwehiuewfhiuewhiewuhfiuewhfiuwefhewiuhewiufhewiufhewiufhewiufhewiufhewiufhewiufhewiuhewiufhewiufhewiuheiufhiuewheiwufhewiufheiufheiufhieuwhfewiuhfeiufhiuewfhiuewheiwuhfiuewhfiuewhfeiuwfhewiufhiuewhiuewhfeiuwhfiuwehfuiwehfiuehiuewhfieuwfhieufhiuewhfeiuwfhiuefhueiwhfw' + + # Verify that writing to a file in a non-existent directory doesn't work + run_cmd(base_app, 'help > {}'.format(filename)) + expected = normalize(BASE_HELP) + with pytest.raises(OSError): + with open(filename) as f: + content = normalize(f.read()) + assert content == expected + + # Verify that appending to a file also works + run_cmd(base_app, 'help history >> {}'.format(filename)) + expected = normalize(BASE_HELP + '\n' + HELP_HISTORY) + with pytest.raises(OSError): + with open(filename) as f: + content = normalize(f.read()) + assert content == expected + def test_feedback_to_output_true(base_app): base_app.feedback_to_output = True |