summaryrefslogtreecommitdiff
path: root/tests/test_transcript.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_transcript.py')
-rw-r--r--tests/test_transcript.py35
1 files changed, 32 insertions, 3 deletions
diff --git a/tests/test_transcript.py b/tests/test_transcript.py
index 4a03ebe0..acdbe703 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
@@ -136,7 +136,7 @@ def test_transcript(request, capsys, filename, feedback_to_output):
assert err.startswith(expected_start)
assert err.endswith(expected_end)
-def test_history_transcript(request, capsys):
+def test_history_transcript():
app = CmdLineApp()
app.stdout = StdSim(app.stdout)
run_cmd(app, 'orate this is\na /multiline/\ncommand;\n')
@@ -163,7 +163,7 @@ this is a \/multiline\/ command
assert xscript == expected
-def test_history_transcript_bad_filename(request, capsys):
+def test_history_transcript_bad_filename():
app = CmdLineApp()
app.stdout = StdSim(app.stdout)
run_cmd(app, 'orate this is\na /multiline/\ncommand;\n')
@@ -189,6 +189,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 {} -t {}'.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.