CsvResult cannot handle characters beyond ascii in test ids
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
subunit |
Triaged
|
Wishlist
|
Unassigned |
Bug Description
jml@grace:
Python 2.7.3 (default, Apr 20 2012, 22:39:59)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from testtools import PlaceHolder
>>> from subunit import TestProtocolClient
>>> from subunit.filters import run_tests_
>>> from subunit.
>>> test = PlaceHolder(
>>> test.id()
'\xe2\x98\x83'
>>> subunit_file = open('test.
>>> client = TestProtocolCli
>>> client.
>>> client.
>>> client.
>>> subunit_
>>> subunit_
>>> with open('test.
... print f.read()
...
test: ☃
successful: ☃
>>> with open('test.
... print f.read()
...
test: ☃
successful: ☃
>>> from StringIO import StringIO
>>> output = StringIO()
>>> csv_result = CsvResult(output)
>>> with open('test.
... run_tests_
...
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
File "/home/
test.
File "/home/
protocol.
File "/home/
self.
File "/home/
self.
File "/home/
self.
File "/home/
self.
File "/usr/local/
return self.decorated.
File "/home/
details=
File "/home/
self.
UnicodeEncodeError: 'ascii' codec can't encode character u'\u2603' in position 0: ordinal not in range(128)
>>> output.getvalue()
'test,status,
Looks like its decoding correctly, failing on encode to csv.