diff options
author | Kevin Van Brunt <kmvanbrunt@gmail.com> | 2019-06-12 11:58:53 -0400 |
---|---|---|
committer | Kevin Van Brunt <kmvanbrunt@gmail.com> | 2019-06-12 11:58:53 -0400 |
commit | bc24624c93d80e64fba9d59455b7bc5a24eb4a1a (patch) | |
tree | 9bcff86b2b357ca9d7704e1ab453764705d80074 /tests/test_plugin.py | |
parent | c0f92d1c3d3a00aa82f0ded091fde1e3a16022e8 (diff) | |
download | cmd2-git-bc24624c93d80e64fba9d59455b7bc5a24eb4a1a.tar.gz |
Fixed unit tests
Diffstat (limited to 'tests/test_plugin.py')
-rw-r--r-- | tests/test_plugin.py | 44 |
1 files changed, 32 insertions, 12 deletions
diff --git a/tests/test_plugin.py b/tests/test_plugin.py index ce4eac2b..f7065db5 100644 --- a/tests/test_plugin.py +++ b/tests/test_plugin.py @@ -3,8 +3,16 @@ """ Test plugin infrastructure and hooks. """ +import sys + import pytest +# Python 3.5 had some regressions in the unitest.mock module, so use 3rd party mock if available +try: + import mock +except ImportError: + from unittest import mock + import cmd2 from cmd2 import plugin @@ -262,21 +270,27 @@ def test_register_preloop_hook_with_return_annotation(): app.register_preloop_hook(app.prepost_hook_with_wrong_return_annotation) def test_preloop_hook(capsys): - app = PluggedApp() + # Need to patch sys.argv so cmd2 doesn't think it was called with arguments equal to the py.test args + testargs = ["prog", "say hello", 'quit'] + + with mock.patch.object(sys, 'argv', testargs): + app = PluggedApp() + app.register_preloop_hook(app.prepost_hook_one) - app._startup_commands.append('say hello') - app._startup_commands.append('quit') app.cmdloop() out, err = capsys.readouterr() assert out == 'one\nhello\n' assert not err def test_preloop_hooks(capsys): - app = PluggedApp() + # Need to patch sys.argv so cmd2 doesn't think it was called with arguments equal to the py.test args + testargs = ["prog", "say hello", 'quit'] + + with mock.patch.object(sys, 'argv', testargs): + app = PluggedApp() + app.register_preloop_hook(app.prepost_hook_one) app.register_preloop_hook(app.prepost_hook_two) - app._startup_commands.append('say hello') - app._startup_commands.append('quit') app.cmdloop() out, err = capsys.readouterr() assert out == 'one\ntwo\nhello\n' @@ -293,21 +307,27 @@ def test_register_postloop_hook_with_wrong_return_annotation(): app.register_postloop_hook(app.prepost_hook_with_wrong_return_annotation) def test_postloop_hook(capsys): - app = PluggedApp() + # Need to patch sys.argv so cmd2 doesn't think it was called with arguments equal to the py.test args + testargs = ["prog", "say hello", 'quit'] + + with mock.patch.object(sys, 'argv', testargs): + app = PluggedApp() + app.register_postloop_hook(app.prepost_hook_one) - app._startup_commands.append('say hello') - app._startup_commands.append('quit') app.cmdloop() out, err = capsys.readouterr() assert out == 'hello\none\n' assert not err def test_postloop_hooks(capsys): - app = PluggedApp() + # Need to patch sys.argv so cmd2 doesn't think it was called with arguments equal to the py.test args + testargs = ["prog", "say hello", 'quit'] + + with mock.patch.object(sys, 'argv', testargs): + app = PluggedApp() + app.register_postloop_hook(app.prepost_hook_one) app.register_postloop_hook(app.prepost_hook_two) - app._startup_commands.append('say hello') - app._startup_commands.append('quit') app.cmdloop() out, err = capsys.readouterr() assert out == 'hello\none\ntwo\n' |