summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/scripts/help.txt1
-rw-r--r--tests/test_transcript.py31
2 files changed, 31 insertions, 1 deletions
diff --git a/tests/scripts/help.txt b/tests/scripts/help.txt
new file mode 100644
index 00000000..71d23d97
--- /dev/null
+++ b/tests/scripts/help.txt
@@ -0,0 +1 @@
+help -v
diff --git a/tests/test_transcript.py b/tests/test_transcript.py
index f93642b8..df7a7cf9 100644
--- a/tests/test_transcript.py
+++ b/tests/test_transcript.py
@@ -17,7 +17,7 @@ from unittest import mock
import pytest
import cmd2
-from .conftest import run_cmd
+from .conftest import run_cmd, BASE_HELP_VERBOSE
from cmd2 import transcript
from cmd2.utils import StdSim
@@ -190,6 +190,35 @@ this is a \/multiline\/ command
transcript = f.read()
assert transcript == expected
+
+def test_load_record_transcript(base_app, request):
+ test_dir = os.path.dirname(request.module.__file__)
+ filename = os.path.join(test_dir, 'scripts', 'help.txt')
+
+ assert base_app.cmdqueue == []
+ assert base_app._script_dir == []
+ assert base_app._current_script_dir is None
+
+ # make a tmp file to use as a transcript
+ fd, transcript_fname = tempfile.mkstemp(prefix='', suffix='.trn')
+ os.close(fd)
+
+ # Run the load command with the -r option to generate a transcript
+ run_cmd(base_app, 'load {} -r {}'.format(filename, transcript_fname))
+
+ assert base_app.cmdqueue == []
+ assert base_app._script_dir == []
+ assert base_app._current_script_dir is None
+
+ # read in the transcript created by the history command
+ with open(transcript_fname) as f:
+ xscript = f.read()
+
+ expected = '(Cmd) help -v\n' + BASE_HELP_VERBOSE + '\n'
+
+ assert xscript == expected
+
+
@pytest.mark.parametrize('expected, transformed', [
# strings with zero or one slash or with escaped slashes means no regular
# expression present, so the result should just be what re.escape returns.