summaryrefslogtreecommitdiff
path: root/tests/test_cmd2.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_cmd2.py')
-rwxr-xr-xtests/test_cmd2.py17
1 files changed, 16 insertions, 1 deletions
diff --git a/tests/test_cmd2.py b/tests/test_cmd2.py
index 0c3333c1..b4b13945 100755
--- a/tests/test_cmd2.py
+++ b/tests/test_cmd2.py
@@ -534,7 +534,7 @@ def test_in_script(request):
def test_system_exit_in_command(base_app, capsys):
- """Test raising SystemExit from a command"""
+ """Test raising SystemExit in a command"""
import types
def do_system_exit(self, _):
@@ -546,6 +546,21 @@ def test_system_exit_in_command(base_app, capsys):
assert stop
+def test_passthrough_exception_in_command(base_app):
+ """Test raising a PassThroughException in a command"""
+ import types
+
+ def do_passthrough(self, _):
+ wrapped_ex = OSError("Pass me up")
+ raise exceptions.PassThroughException(wrapped_ex=wrapped_ex)
+
+ setattr(base_app, 'do_passthrough', types.MethodType(do_passthrough, base_app))
+
+ with pytest.raises(OSError) as excinfo:
+ base_app.onecmd_plus_hooks('passthrough')
+ assert 'Pass me up' in str(excinfo.value)
+
+
def test_output_redirection(base_app):
fd, filename = tempfile.mkstemp(prefix='cmd2_test', suffix='.txt')
os.close(fd)