summaryrefslogtreecommitdiff
path: root/tests/pyscript/stdout_capture.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/pyscript/stdout_capture.py')
-rw-r--r--tests/pyscript/stdout_capture.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/tests/pyscript/stdout_capture.py b/tests/pyscript/stdout_capture.py
new file mode 100644
index 00000000..4aa78d53
--- /dev/null
+++ b/tests/pyscript/stdout_capture.py
@@ -0,0 +1,26 @@
+# flake8: noqa F821
+# This script demonstrates when output of a command finalization hook is captured by a pyscript app() call
+import sys
+
+# The unit test framework passes in the string being printed by the command finalization hook
+hook_output = sys.argv[1]
+
+# Run a help command which results in 1 call to onecmd_plus_hooks
+res = app('help')
+
+# hook_output will not be captured because there are no nested calls to onecmd_plus_hooks
+if hook_output not in res.stdout:
+ print("PASSED")
+else:
+ print("FAILED")
+
+# Run the last command in the history
+res = app('history -r -1')
+
+# All output of the history command will be captured. This includes all output of the commands
+# started in do_history() using onecmd_plus_hooks(), including any output in those commands' hooks.
+# Therefore we expect the hook_output to show up this time.
+if hook_output in res.stdout:
+ print("PASSED")
+else:
+ print("FAILED")