Удаленка для jenkins+selenide+selenoid+allure+docker спецов на 2-3 часа в день. 100% remote! Присоединиться к проекту

Юникод вместо кириллицы в отчётах Allure (pytest)

pytest
allure
python
Теги: #<Tag:0x00007fedda293018> #<Tag:0x00007fedda292cd0> #<Tag:0x00007fedda290f70>

(Павел Уколов) #1

Здравствуйте!
Есть тест, написанный на pytest. Для передачи тестовых данных функции я использую @parametrize, передаю туда функцию, которая читает данные построчно из csv-файла (get_data(название_файла)), в котором есть строки на кириллице. Проблема заключается в том, что в Allure я получаю вместо кириллицы символы на юникоде. Само название шага теста @allure.step('Кириллицей') отображается корректно, но здесь:

в месте, где должны отображаться конкретные тестовые данные, получаю то, что вы видите на скрине.

Я пробовал сохранять свой csv-файл в кодировке “Windows 1251” - тщетно (в интерпретаторе, например, символы после вызова функции get_data(file.csv) отображались корректно, а в самом файле после сохранения имели вид “Ìàøèííàÿ,Àâòîòåñòêà” Пробовал сохранять в кодировке “utf-8” - тоже (здесь же в файле отображалось всё хорошо, но в интерпретаторе на выходе получались похожие символы). После сохранения в “utf-8” я добавил в функцию get_data такой метод, как fix_encoding (отсюда: https://github.com/LuminosoInsight/python-ftfy/tree/master/ftfy), после этого из файла в кодировке UTF-8 на выходе получалась понятная строка на кириллице, но в отчёте на Allure ничего не изменилось.

Pytest v.3.2.3, Pytest-Allure-Adaptor v.1.7.8, python 3.6.3

Подскажите, пожалуйста, с какой стороны к этому подойти? Это проблемы в кодировке Python? Или же какой-то баг в Allure?

P.S.: во всех случаях в браузер, когда выполнялся тест, передавались корректные символы на кириллице (и с сохранением в 1251, и в UTF-8), проблема только в Allure.

Заранее спасибо!


(Ramon Menezes) #2

попробуйте проект перевести на windows1251


#3

Привет!

  1. Завести баг в https://github.com/allure-framework/allure-pytest

  2. попробовать адаптер второй версии https://pypi.python.org/pypi/allure-pytest


(Павел Уколов) #4

На выходных тоже подумал, что нужно попробовать обновить адаптер - действительно, проблема частично решилась: параметры стали отдельным блоком, кириллица отображается внутри него корректно. Спасибо!


#5

“проблема частично решилась” - а что не работает?


(Павел Уколов) #6

В блоке “Parameters” всё ок, а в титуле всё равно юникод:


#7

Скорее всего и в дереве тоже самое (. Заведи пожалуйста ишью https://github.com/allure-framework/allure-python. В ближайшем релизе постараемся починить.


(Павел Уколов) #8

Было бы здорово! Конечно, сегодня постараюсь завести. Ещё раз спасибо