我正在为一个flask应用程序写一些断言。我成功地测试了响应中的Umlauts,如下所示:
assert 'Wählen Sie ...'.encode('utf-8') in rv.data
元音“ä”在编码数据和来自web应用程序的响应中具有相同的表示(\xc3\xa4
)。你知道吗
但现在,我试着用双引号做同样的事情:
assert 'Der gewünschte Monat ... z.B. "2019-5".'.encode('utf-8') in rv.data
它失败了,因为编码时"
仍然是"
,但是web应用程序用"
响应。你知道吗
为了实现兼容性,我应该如何处理正在测试的字符串?你知道吗
web应用程序使用html实体代码对双引号进行编码,然后再编码为utf-8。您可以使用html.escape函数来模拟这个过程,但不幸的是,它用
"
而不是"
替换了''。你知道吗xml.sax.saxutils.escape函数不会自动转义双引号,但它接受要转义的字符和转义值的字典,因此您可以使用它来生成文本:
相反的方法是解码和取消服务器响应,并将其与原始字符串进行比较。您可以为此使用html.unescape函数,因为它将取消数值转义:
相关问题 更多 >
编程相关推荐