summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorTodd Leonhardt <todd.leonhardt@gmail.com>2017-03-16 23:46:11 -0400
committerGitHub <noreply@github.com>2017-03-16 23:46:11 -0400
commit91cc19ca5d95aaa6ef2188c226c9cbcf8b19537f (patch)
treeeed4a8f6e66622b7a45d58cf4685b8e5b6920905 /tests
parent2d4b43a4901122d7918af4030c440a3c93892a4f (diff)
parent3fceb279272f1a1595071420494905dc29b6dd82 (diff)
downloadcmd2-git-91cc19ca5d95aaa6ef2188c226c9cbcf8b19537f.tar.gz
Merge pull request #82 from python-cmd2/regex_transcript
Improved documentation for regular expressions in transcripts
Diffstat (limited to 'tests')
-rw-r--r--tests/test_transcript.py26
-rw-r--r--tests/transcript_regex.txt18
2 files changed, 44 insertions, 0 deletions
diff --git a/tests/test_transcript.py b/tests/test_transcript.py
index c0966d03..89f2ea7c 100644
--- a/tests/test_transcript.py
+++ b/tests/test_transcript.py
@@ -310,3 +310,29 @@ def test_invalid_syntax(_cmdline_app, capsys):
out, err = capsys.readouterr()
expected = normalize("""ERROR: Invalid syntax: No closing quotation""")
assert normalize(str(err)) == expected
+
+
+def test_regex_transcript(request, capsys):
+ # Create a cmd2.Cmd() instance and make sure basic settings are like we want for test
+ app = CmdLineApp()
+
+ # Get location of the transcript
+ test_dir = os.path.dirname(request.module.__file__)
+ transcript_file = os.path.join(test_dir, 'transcript_regex.txt')
+
+ # Need to patch sys.argv so cmd2 doesn't think it was called with arguments equal to the py.test args
+ testargs = ['prog', '-t', transcript_file]
+ with mock.patch.object(sys, 'argv', testargs):
+ # Run the command loop
+ app.cmdloop()
+
+ # Check for the unittest "OK" condition for the 1 test which ran
+ expected_start = ".\n----------------------------------------------------------------------\nRan 1 test in"
+ expected_end = "s\n\nOK\n\n"
+ out, err = capsys.readouterr()
+ if six.PY3:
+ assert err.startswith(expected_start)
+ assert err.endswith(expected_end)
+ else:
+ assert err == ''
+ assert out == ''
diff --git a/tests/transcript_regex.txt b/tests/transcript_regex.txt
new file mode 100644
index 00000000..b8e0e654
--- /dev/null
+++ b/tests/transcript_regex.txt
@@ -0,0 +1,18 @@
+# Run this transcript with "python example.py -t transcript_regex.txt"
+# The regex for editor matches any word until first space. The one for colors is because no color on Windows.
+(Cmd) set
+abbrev: True
+autorun_on_edit: True
+case_insensitive: True
+colors: /(True|False)/
+continuation_prompt: >
+debug: False
+default_file_name: command.txt
+echo: False
+editor: /([^\s]+)/
+feedback_to_output: False
+locals_in_py: True
+maxrepeats: 3
+prompt: (Cmd)
+quiet: False
+timing: False