diff options
| author | Robert Collins <robertc@robertcollins.net> | 2009-10-11 07:23:05 +1100 |
|---|---|---|
| committer | Robert Collins <robertc@robertcollins.net> | 2009-10-11 07:23:05 +1100 |
| commit | 6bd5e4bca85e29d01ed108d4b9709e840aa1ba8f (patch) | |
| tree | decb5f0cae7f225cfcc8d723b2d3cebecb3dc758 /python | |
| parent | 6a59dcfa6b1951e331d7f3ba5fe3285c905f64b5 (diff) | |
| download | subunit-git-6bd5e4bca85e29d01ed108d4b9709e840aa1ba8f.tar.gz | |
Simplify Python parser calling paths.
Diffstat (limited to 'python')
| -rw-r--r-- | python/subunit/__init__.py | 84 |
1 files changed, 29 insertions, 55 deletions
diff --git a/python/subunit/__init__.py b/python/subunit/__init__.py index a175655..38ec9b8 100644 --- a/python/subunit/__init__.py +++ b/python/subunit/__init__.py @@ -199,42 +199,35 @@ class _ParserState(object): """A 'success:' directive has been read.""" self.parser.stdOutLineReceived(line) - def endQuote(self, line): - """The end of a details section has been reached.""" - self.parser.stdOutLineReceived(line) - def lineReceived(self, line): """a line has been received.""" - if line == "]\n": - self.endQuote(line) - else: - parts = line.split(None, 1) - if len(parts) == 2: - cmd, rest = parts - offset = len(cmd) + 1 - cmd = cmd.strip(':') - if cmd in ('test', 'testing'): - self.startTest(offset, line) - elif cmd == 'error': - self.addError(offset, line) - elif cmd == 'failure': - self.addFailure(offset, line) - elif cmd == 'progress': - self.parser._handleProgress(offset, line) - elif cmd == 'skip': - self.addSkip(offset, line) - elif cmd in ('success', 'successful'): - self.addSuccess(offset, line) - elif cmd in ('tags',): - self.parser._handleTags(offset, line) - elif cmd in ('time',): - self.parser._handleTime(offset, line) - elif cmd == 'xfail': - self.addExpectedFail(offset, line) - else: - self.parser.stdOutLineReceived(line) + parts = line.split(None, 1) + if len(parts) == 2: + cmd, rest = parts + offset = len(cmd) + 1 + cmd = cmd.strip(':') + if cmd in ('test', 'testing'): + self.startTest(offset, line) + elif cmd == 'error': + self.addError(offset, line) + elif cmd == 'failure': + self.addFailure(offset, line) + elif cmd == 'progress': + self.parser._handleProgress(offset, line) + elif cmd == 'skip': + self.addSkip(offset, line) + elif cmd in ('success', 'successful'): + self.addSuccess(offset, line) + elif cmd in ('tags',): + self.parser._handleTags(offset, line) + elif cmd in ('time',): + self.parser._handleTime(offset, line) + elif cmd == 'xfail': + self.addExpectedFail(offset, line) else: self.parser.stdOutLineReceived(line) + else: + self.parser.stdOutLineReceived(line) def lostConnection(self): """Connection lost.""" @@ -340,7 +333,7 @@ class _OutSideTest(_ParserState): class _ReadingDetails(_ParserState): """Common logic for readin state details.""" - def endQuote(self, line): + def _endQuote(self, line): """The end of a details section has been reached.""" self.parser._state = self.parser._outside_test self.parser.current_test_description = None @@ -349,6 +342,8 @@ class _ReadingDetails(_ParserState): def lineReceived(self, line): """a line has been received.""" + if line == "]\n": + self._endQuote(line) self.parser._appendMessage(line) def lostConnection(self): @@ -447,18 +442,6 @@ class TestProtocolServer(object): # start with outside test. self._state = self._outside_test - def _addError(self, offset, line): - self._state.addError(offset, line) - - def _addExpectedFail(self, offset, line): - self._state.addExpectedFail(offset, line) - - def _addFailure(self, offset, line): - self._state.addFailure(offset, line) - - def _addSkip(self, offset, line): - self._state.addSkip(offset, line) - def _skip_or_error(self, message=None): """Report the current test as a skip if possible, or else an error.""" addSkip = getattr(self.client, 'addSkip', None) @@ -469,9 +452,6 @@ class TestProtocolServer(object): message = "No reason given" addSkip(self._current_test, message) - def _addSuccess(self, offset, line): - self._state.addSuccess(offset, line) - def _appendMessage(self, line): if line[0:2] == " ]": # quoted ] start @@ -479,9 +459,6 @@ class TestProtocolServer(object): else: self._message += line - def endQuote(self, line): - self._state.endQuote(line) - def _handleProgress(self, offset, line): """Process a progress directive.""" line = line[offset:].strip() @@ -521,10 +498,7 @@ class TestProtocolServer(object): def lineReceived(self, line): """Call the appropriate local method for the received line.""" - if line == "]\n": - self.endQuote(line) - else: - self._state.lineReceived(line) + self._state.lineReceived(line) def _lostConnectionInTest(self, state_string): error_string = "lost connection during %stest '%s'" % ( |
