from cStringIO import StringIO
-import chunked, content, content_type
+from testtools import content, content_type
+
+import chunked
class DetailsParser(object):
else:
self._message += line
- def get_details(self):
+ def get_details(self, style=None):
result = {}
- result['traceback'] = content.Content(
- content_type.ContentType("text", "x-traceback"),
- lambda:[self._message])
+ if not style:
+ # We know that subunit/testtools serialise [] formatted
+ # tracebacks as utf8, but perhaps we need a ReplacingContent
+ # or something like that.
+ result['traceback'] = content.Content(
+ content_type.ContentType("text", "x-traceback",
+ {"charset": "utf8"}),
+ lambda:[self._message])
+ else:
+ if style == 'skip':
+ name = 'reason'
+ else:
+ name = 'message'
+ result[name] = content.Content(
+ content_type.ContentType("text", "plain"),
+ lambda:[self._message])
return result
def get_message(self):
residue = self._chunk_parser.write(line)
if residue is not None:
# Line based use always ends on no residue.
- assert residue == ''
+ assert residue == '', 'residue: %r' % (residue,)
body = self._body
self._details[self._name] = content.Content(
self._content_type, lambda:[body.getvalue()])
self._chunk_parser.close()
self._parse_state = self._look_for_content
- def get_details(self):
+ def get_details(self, for_skip=False):
return self._details
def get_message(self):