我有一个在内部使用 unicode 的函数,我想使用py.test
. 目前,我有以下代码:
def test_num2word():
assert num2word(2320) == u"dva tisíce tři sta dvacet"
但是,断言失败:
E assert u'dva tis\xed...i sta dvacet ' == u'dva tis\xc3\...9i sta dvacet'
E - dva tis\xedce t\u0159i sta dvacet
E ? ^ ^ -
E + dva tis\xc3\xadce t\xc5\x99i sta dvacet
E ?
据我了解,我的函数正确返回 unicode,然后尝试将其与 utf-8 编码字符串进行比较,但(显然)失败了。然而,我认为u"..."
在我的源代码中使用也会将字符串转换为 Python 内部使用的相同编码。
我的问题是,是否有一种比较这些的合理方法,或者我是否需要在每个测试语句中添加一个decode('utf-8')
(在右侧)或一个encode('utf-8')
(在左侧。即使我编写了一个包装函数,这也不'不要让我觉得理想 - 必须有一种方法可以理智地比较它!不,使用 Python 3 不是一种选择。