Mercurial > python-cmd2
changeset 174:471318e59e51
still small glitch breaking up tests
author | catherine@dellzilla |
---|---|
date | Fri, 12 Dec 2008 15:12:37 -0500 |
parents | 10a45c030364 |
children | 72de7d8566e2 |
files | cmd2.py example/exampleSession.txt |
diffstat | 2 files changed, 11 insertions(+), 25 deletions(-) [+] |
line wrap: on
line diff
--- a/cmd2.py Fri Dec 12 11:41:55 2008 -0500 +++ b/cmd2.py Fri Dec 12 15:12:37 2008 -0500 @@ -390,7 +390,7 @@ if self.blankLinesAllowed: blankLineTerminationParser = pyparsing.NoMatch else: - blankLineTerminator = (pyparsing.Literal('\n') + stringEnd)('terminator') + blankLineTerminator = (pyparsing.Literal('\n')('terminator') + stringEnd) blankLineTerminationParser = ((multilineCommand ^ oneLineCommand) + pyparsing.SkipTo(blankLineTerminator).setParseAction(lambda x: x[0].strip())('args') + blankLineTerminator)('statement') multilineParser = (((multilineCommand ^ oneLineCommand) + pyparsing.SkipTo(terminatorParser).setParseAction(lambda x: x[0].strip())('args') + terminatorParser)('statement') + pyparsing.SkipTo(outputParser ^ pipe ^ stringEnd).setParseAction(lambda x: x[0].strip())('suffix') + afterElements) @@ -398,10 +398,10 @@ pyparsing.Optional(terminatorParser) + afterElements) self.parser = ( stringEnd | - blankLineTerminationParser | multilineParser | multilineCommand + pyparsing.SkipTo(stringEnd) | - singleLineParser + singleLineParser | + blankLineTerminationParser ) self.parser.ignore(pyparsing.sglQuotedString).ignore(pyparsing.dblQuotedString).ignore(self.commentGrammars).ignore(self.commentInProgress) @@ -905,12 +905,14 @@ continuationPrompt = self.cmdapp.continuationPrompt.rstrip() for (lineNum, line) in enumerate(self.transcript): if line.startswith(prompt): + if commandStart == lineNum - 1: + responseStart = lineNum if responseStart is not None: - self.dialogue.append(commandStart, ''.join(command), ''.join(self.transcript[responseStart:lineNum])) - command = [line[len(prompt):]] + self.dialogue.append((commandStart, ''.join(command), ''.join(self.transcript[responseStart:lineNum]))) + command = [line[len(prompt)+1:]] commandStart = lineNum elif line.startswith(continuationPrompt): - command.append(line[len(continuationPrompt):]) + command.append(line[len(continuationPrompt)+1:]) else: if responseStart < commandStart: responseStart = lineNum @@ -918,9 +920,9 @@ if self.CmdApp: self.divideTranscript() for (lineNum, command, expected) in self.dialogue: - self.cmdapp.onecmd(commandSlice) + self.cmdapp.onecmd(command) result = self.outputTrap.read() - self.assertEqual(result, expected, + self.assertEqual(result.strip(), expected.strip(), '\nFile %s, line %d\nCommand was:\n%s\nExpected:\n%s\nGot:\n%s\n' % (self.transcriptFileName, lineNum, command, expected, result)) def tearDown(self):
--- a/example/exampleSession.txt Fri Dec 12 11:41:55 2008 -0500 +++ b/example/exampleSession.txt Fri Dec 12 15:12:37 2008 -0500 @@ -1,15 +1,3 @@ -This is cut-and-pasted from an interactive example.py session. -Calling `example.py -t` runs it as a series of unit tests, -verifying that the same output is still returned. - -(Cmd) orate four score and -> seven releases ago -> our BDFL -> -> -four score and -seven releases ago -our BDFL (Cmd) & look, a shortcut! look, a shortcut! (Cmd) say put this in a file > myfile.txt @@ -28,8 +16,4 @@ (Cmd) # Quoted strings immediately following the command are NOT included in the arguments - (Cmd) # this is due to a bug in pyparsing. See: (Cmd) # https://sourceforge.net/tracker/index.php?func=detail&aid=2412233&group_id=97203&atid=617311 -(Cmd) set prompt "---> " -prompt - was: (Cmd) -now: ---> ----> say goodbye -goodbye \ No newline at end of file +(Cmd) # Test suite can't test changing prompts. \ No newline at end of file