diff options
author | John Szakmeister <john@szakmeister.net> | 2013-06-01 02:22:02 -0700 |
---|---|---|
committer | John Szakmeister <john@szakmeister.net> | 2013-06-01 02:22:02 -0700 |
commit | 439ea7b0c1ed667ece1d36c901b862bb34bb4d9b (patch) | |
tree | 19b2ae50613546e78f9cb80f0b5f5693eaf60b31 /nose/plugins | |
parent | 9b1cdeceabb117bd4f051226249b42012f84a6c5 (diff) | |
parent | 41dd933fbc6edd289e5d5d3eedf777cfae5409f8 (diff) | |
download | nose-439ea7b0c1ed667ece1d36c901b862bb34bb4d9b.tar.gz |
Merge pull request #686 from jszakmeister/fix-issue-649
Fix #649: UnicodeDecodeError when an exception contains encoded strings
Diffstat (limited to 'nose/plugins')
-rw-r--r-- | nose/plugins/capture.py | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/nose/plugins/capture.py b/nose/plugins/capture.py index ecea8ff..224f0a5 100644 --- a/nose/plugins/capture.py +++ b/nose/plugins/capture.py @@ -89,7 +89,12 @@ class Capture(Plugin): if isinstance(ev, BaseException): if hasattr(ev, '__unicode__'): # 2.6+ - ev = unicode(ev) + try: + ev = unicode(ev) + except UnicodeDecodeError: + # We need a unicode string... take our best shot at getting, + # since we don't know what the original encoding is in. + ev = str(ev).decode('utf8', 'replace') else: # 2.5- if not hasattr(ev, 'message'): |