一个python库和命令行工具,用于“美化”和着色xml。
pxml的Python项目详细描述
一个python库和命令行工具,用于“美化”和着色xml。
它还提供了一个UNITest.TestCaskMin添加了
assertXmlEqual
方法,在差异上,显示“漂亮的”差异。
安装
$ pip install pxml
在命令行中
$ echo'<root><node attr="value">foo</node></root>'| pxml <?xml version="1.0"encoding="UTF-8"?> <root> <node attr="value">foo</node> </root>
并添加一些颜色:
作为python模块
importpxml,sixsrc=six.StringIO('<root><node attr="value">foo</node></root>')out=six.StringIO()pxml.prettify(src,out)assert(out.getvalue()=='''\ <?xml version="1.0" encoding="UTF-8"?> <root> <node attr="value">foo</node> </root> ''')
单元测试
pxml.XmlTestMixin
类将assertXmlEqual
方法添加到
子类,它允许对两个xml结构进行简单的语义比较
相当于。它通过忽略可忽略的空白,属性
字节级的顺序、引号类型和其他差异
序列化时的差异,但实际上并不表示语义
差异。当检测到差异时,显示XML
为了便于比较,“美化”xml中的差异。
importunittest,pxmlclassMyTestCase(unittest.TestCase,pxml.XmlTestMixin):deftest_equivalent_xml(self):src='<root ><node a="1" b="0"/></root>'chk='<root><node b="0" a="1" /></root >'self.assertXmlEqual(src,chk)deftest_different_xml(self):src='<root ><node a="1" b="0"/></root>'chk='<root><node b="1" a="0" /></root >'self.assertXmlEqual(src,chk)# this fails the test and produces the following error message:# AssertionError: [truncated]... != [truncated]...# <?xml version="1.0" encoding="UTF-8"?># <root># - <node a="1" b="0"/># + <node a="0" b="1"/># </root>