Sha256: 222f2ff616814ccdedb9c412f9b32c154bd0634acd6c21486f66a9ab471d3135
Contents?: true
Size: 1.62 KB
Versions: 1
Compression:
Stored size: 1.62 KB
Contents
# -*- coding: UTF-8 -*- """ SIMILAR: #453 NOTE: traceback2 (backport for Python2) solves the problem. Either Exception text (as summary) or traceback python line shows special characters correctly. .. code-block:: python # -*- coding=utf-8 -*- from behave import * from hamcrest.core import assert_that, equal_to @step("Russian text") def foo(stop): assert_that(False, equal_to(True), u"Всё очень плохо") # cyrillic And I also have UTF-8 as my console charset. Running this code leads to "Assertion Failed: 'ascii' codec can't encode characters in position 0-5: ordinal not in range(128)" error. That is becase behave.textutil.text returns six.text_type(e) where 'e' is exception (https://github.com/behave/behave/blob/master/behave/textutil.py#L83). Changing line 83 to six.text_type(value) solves this issue. """ from __future__ import print_function from behave.textutil import text from hamcrest.core import assert_that, equal_to from hamcrest.library import contains_string import six import pytest if six.PY2: import traceback2 as traceback else: import traceback def foo(): assert_that(False, equal_to(True), u"Всё очень плохо") # cyrillic @pytest.mark.parametrize("encoding", [None, "UTF-8", "unicode_escape"]) def test_issue(encoding): expected = u"Всё очень плохо" try: foo() except Exception as e: text2 = traceback.format_exc() text3 = text(text2, encoding) print(u"EXCEPTION-TEXT: %s" % text3) print(u"text2: "+ text2) assert_that(text3, contains_string(u"AssertionError: Всё очень плохо"))
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
busser-behave-0.1.3 | vendor/behave/tests/issues/test_issue0449.py |