Боря се с проект, който се опитва да поддържа същия код, работещ с Python2.6, Python 2.7 и Python 3.x.
Този проект използва python_2_unicode_compatible class decorator, за да съхранява не-unicode стойности в тип str.
Трябва да тествам функция foo, връщаща тип str (не unicode); върнатата стойност се попълва с не-ascii знаци.
Всичко, което искам, е да тествам стойността, върната от тази функция, спрямо мой собствен низ, нещо като:
from __future__ import unicode_literals # so that "àbcéfg" will be read u"àbcéfg"
bool_test = (foo() == "àbcéfg")
Заседнал съм, тъй като "àbcéfg" ще се разглежда в Python2 като unicode низ, в Python3 като str низ.
Например, с Python2, този код предизвиква следната грешка:
Unicode равното сравнение не успя да преобразува и двата аргумента в Unicode - тълкувайки ги като неравни
Има ли уникален начин за постигане на сравнението, общо за Python2 и Python3?
Опитах няколко решения (преобразуване на str в байтове, по пример), без успех.
Някаква идея да ми помогнете?