В некотором коде, который я портирую с Python 2 на 3, но который все еще должен работать на обоих, у меня есть что-то вроде этого:
if six.PY2:
_text = widget.get_text().strip().decode('utf-8')
else:
_text = widget.get_text().strip()
Поскольку GTK-3 widget.get_text()
возвращает байты в Python 2и Unicode в Python 3. Это PITA, так как метод, который я передаю _text
, нуждается в Unicode.Таким образом, в Python 2 я должен декодировать любые данные, которые я получаю.
У меня есть модульные тесты, которые имитируют widget.get_text
, но очевидно, что они работают под одной и только одной версией Python.Я мог бы добавить pragma: no test
к ветке Python 2, но это похоже на чит.
Итак, вопросы:
- Как мне получить 100% тестовое покрытие с вышеупомянутым без прагмы. .
- Как я могу реорганизовать этот код, чтобы у меня вообще не было ветки?