New submission from Johannes Ammon <johannes.am...@gmail.com>:

When there is a non-ASCII character in the docstring of a test function, 
unittest triggers an UnicodeEncodeError when called with "--verbose".

I have this file unicodetest.py:
-----------------------------------------
# -*- coding: utf-8 -*-
import unittest

class UnicodeTest(unittest.TestCase):
    def test_unicode_docstring(self):
        u"""täst - docstring with unicode character"""
        self.assertEqual(1+1, 2)

if __name__ == '__main__':
    unittest.main()
-----------------------------------------

Running it normally is ok:

$ python unicodetest.py 
.
----------------------------------------------------------------------
Ran 1 test in 0.000s

OK


But with "--verbose" it breaks:

$ python unicodetest.py --verbose
Traceback (most recent call last):
  File "unicodetest.py", line 10, in <module>
    unittest.main()
  File 
"/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/unittest.py",
 line 817, in __init__
    self.runTests()
  File 
"/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/unittest.py",
 line 861, in runTests
    result = testRunner.run(self.test)
  File 
"/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/unittest.py",
 line 753, in run
    test(result)
  File 
"/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/unittest.py",
 line 464, in __call__
    return self.run(*args, **kwds)
  File 
"/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/unittest.py",
 line 460, in run
    test(result)
  File 
"/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/unittest.py",
 line 464, in __call__
    return self.run(*args, **kwds)
  File 
"/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/unittest.py",
 line 460, in run
    test(result)
  File 
"/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/unittest.py",
 line 300, in __call__
    return self.run(*args, **kwds)
  File 
"/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/unittest.py",
 line 266, in run
    result.startTest(self)
  File 
"/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/unittest.py",
 line 693, in startTest
    self.stream.write(self.getDescription(test))
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe4' in position 1: 
ordinal not in range(128)


Found with Python 2.6 on MacOS X 10.6.4

----------
components: Tests, Unicode
messages: 121193
nosy: jammon
priority: normal
severity: normal
status: open
title: unittest triggers UnicodeEncodeError with non-ASCII character in the 
docstring of the test function
type: behavior
versions: Python 2.6

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue10417>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to