Merge pull request #1870 from AiOO/bugfix/assertion-with-unicode

Fix UnicodeEncodeError when string comparison with unicode has failed.
This commit is contained in:
Bruno Oliveira 2016-08-25 22:29:32 -03:00 committed by GitHub
commit a947e83be9
4 changed files with 16 additions and 1 deletions

View File

@ -5,6 +5,7 @@ Contributors include::
Abdeali JK
Abhijeet Kasurde
Ahn Ki-Wook
Alexei Kozlenok
Anatoly Bubenkoff
Andreas Zeidler

View File

@ -9,11 +9,16 @@
* Add ``buffer`` attribute to stdin stub class ``pytest.capture.DontReadFromInput``
Thanks `@joguSD`_ for the PR.
* Fix ``UnicodeEncodeError`` when string comparison with unicode has failed. (`#1864`_)
Thanks `@AiOO`_ for the PR
*
.. _@joguSD: https://github.com/joguSD
.. _@AiOO: https://github.com/AiOO
.. _#1857: https://github.com/pytest-dev/pytest/issues/1857
.. _#1864: https://github.com/pytest-dev/pytest/issues/1864
3.0.1

View File

@ -354,7 +354,7 @@ class ExceptionInfo(object):
if exprinfo is None and isinstance(tup[1], AssertionError):
exprinfo = getattr(tup[1], 'msg', None)
if exprinfo is None:
exprinfo = str(tup[1])
exprinfo = py._builtin._totext(tup[1])
if exprinfo and exprinfo.startswith('assert '):
self._striptext = 'AssertionError: '
self._excinfo = tup

View File

@ -816,3 +816,12 @@ def test_assert_indirect_tuple_no_warning(testdir):
result = testdir.runpytest('-rw')
output = '\n'.join(result.stdout.lines)
assert 'WR1' not in output
def test_assert_with_unicode(monkeypatch, testdir):
testdir.makepyfile(u"""
# -*- coding: utf-8 -*-
def test_unicode():
assert u'유니코드' == u'Unicode'
""")
result = testdir.runpytest()
result.stdout.fnmatch_lines(['*AssertionError*'])