summaryrefslogtreecommitdiff
path: root/tests/test_plugin.py
diff options
context:
space:
mode:
authorKevin Van Brunt <kmvanbrunt@gmail.com>2019-06-12 11:58:53 -0400
committerKevin Van Brunt <kmvanbrunt@gmail.com>2019-06-12 11:58:53 -0400
commitbc24624c93d80e64fba9d59455b7bc5a24eb4a1a (patch)
tree9bcff86b2b357ca9d7704e1ab453764705d80074 /tests/test_plugin.py
parentc0f92d1c3d3a00aa82f0ded091fde1e3a16022e8 (diff)
downloadcmd2-git-bc24624c93d80e64fba9d59455b7bc5a24eb4a1a.tar.gz
Fixed unit tests
Diffstat (limited to 'tests/test_plugin.py')
-rw-r--r--tests/test_plugin.py44
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'