Python的lxml.etree.tostring()在Mac和Linux上的缩进不同——缩进似乎是Linux的两倍。它破坏了我的单元测试。在
显然lxml.etree不公开任何用于设置默认缩进值的路径。在
有人知道这里会发生什么吗?在
编辑以添加代码:
我确信代码是一样的,计算机通过github共享它。在
测试代码如下:chk = """\
7135260
lastname
Last Name
"""
res = etree.tostring((xml_obj.xpath(xp_str))[0], pretty_print=True)
self.assertMultiLineEqual(
chk,
res.rstrip()
)
这在Linux上通过,但在Mac上失败,并显示以下错误报告:
^{pr2}$
但当我隔离出有问题的代码时,两个代码的输出是相同的:data_str = """\
7135259
firstname
First Name
7135260
lastname
Last Name
success
"""
data_xml = etree.fromstring(data_str)
res = etree.tostring(
(data_xml.xpath('//*[name="lastname"]/name/..'))[0],
pretty_print=True)
print res
这两种平台上的压痕相同。在
所以不管有什么奇怪之处,它都是由unittest2引起的。在这一点上,这可能不是一个很好的问题。在
进一步编辑:
当我在repr()中包装比较项时,我得到:- '\n 7135260\n lastname\n Last Name\n \n '
+ '\n 7135260\n lastname\n Last Name\n \n \n \n'
? ++++++ ++++++ ++++++ ++++++ ++++ ++++++++++++
这个输出实际上是单行的。我先插入了换行符+符号和?性格。在
我在测试输出中搜索了制表符('\t')。我确定我没有插入制表符,我使用的是vi w/“set expandtab”。在