- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在编写一个方法,该方法使用 lxml.etree 中 ElementTree 类的 write 方法。在编写测试时,我想模拟它,以便单元测试不会向我的驱动器写入一堆内容。
我的文件中的代码看起来像这样
# myapp\gla.py
from lxml.etree import Element, ElementTree
def my_func(element):
root = Element(element)
xml = ElementTree(root)
xml.write('path_to_file')
测试如下:
# tests\test_gla.py
from unittest import patch
from myapp.gla import my_func
@patch('myapp.gla.ElementTree.write')
def test_my_func(self, mock_write):
my_func('rootElement')
mock_write.assert_called_once()
我明白了
Traceback (most recent call last):
File "C:\Anaconda2\envs\py36\lib\unittest\mock.py", line 1171, in patched
arg = patching.__enter__()
File "C:\Anaconda2\envs\py36\lib\unittest\mock.py", line 1243, in __enter__
original, local = self.get_original()
File "C:\Anaconda2\envs\py36\lib\unittest\mock.py", line 1217, in get_original
"%s does not have the attribute %r" % (target, name)
AttributeError: <cyfunction ElementTree at 0x000001FFB4430BC8> does not have the attribute 'write'
最佳答案
找到了我自己问题的答案。
像这样重写测试:
# tests\test_gla.py
from unittest import patch, MagicMock
from myapp.gla import my_func
@patch('myapp.gla.ElementTree')
def test_my_func(self, mock_write):
mock_write().write = MagicMock()
my_func('rootElement')
mock_write().write.assert_called_once()
关于python - 需要从 lxml.etree 模块模拟 ElementTree 类的 write() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54173033/
lxml提供了一些不同的函数来解析字符串。其中两个,etree.fromstring()和 etree.XML() ,看起来很像。前者的文档字符串说它用于解析“字符串”,而后者是“字符串常量”。此外,
我有一个使用 lxml.etree 解析 XML 的脚本: from lxml import etree parser = etree.XMLParser(load_dtd=True, resolve
我一直在将我的一些原始 xml.etree.ElementTree (ET) 代码转换为 lxml.etree (lxmlET )。幸运的是,两者之间有很多相似之处。 但是,我确实偶然发现了一些我在任
是否有任何解决方案可以添加不带前缀的命名空间(我的意思是这些 ns0、ns1),它们适用于所有 etree 实现,或者每个实现都有可行的解决方案? 目前我有以下解决方案: lxml - 元素的 nsm
我正在使用 aws 的 Alexa api,但我发现很难解析结果以获得我想要的内容 alexa api 返回一个对象树 我使用此代码来打印树 from lxml import etree root
当涉及到模块/库时,为了可读性,我喜欢在 python 中使用完整的命名空间。我想知道为什么这对 xml 库不起作用。我认为 import xml 还将导入 etree 和命名空间中的所有其他内容。至
我有一个从 etree 元素返回列表的函数,但它不会查看嵌套元素。 (我正在
尝试从 serpscrap 包运行示例 .py 时出现错误。 我在 Pythonista 中使用 iPhoneX。 如有任何帮助,我们将不胜感激。 这是回溯 Traceback (most recen
如何删除或移除 server1 的所有条目,包括标签?我尝试使用 etree 删除功能,但它没有帮助
我试图将多个文件写入一个目录,每个文件之间几乎没有变化(例如增量ID号)当我尝试运行我的程序时,它在写入大约5个文件后失败。但是当我再次尝试并重新选择源文件时,它就有效了。这是我的代码: if not
如何在 Python xml.etree 中克隆 Element 对象?我正在尝试按程序移动和复制(然后修改它们的属性)节点。 最佳答案 您可以使用 copy.deepcopy()制作元素的副本。 (
我正在创建一个简单的脚本来使用特定模式解析、验证、修复和重新打印 XML 文件。整个过程运行良好,但问题是当我打印修改后的 ElementTree 时,它会删除我所有的实体引用。 这是简化的 py
xml文件结构如下 我的解析器首先获取所有 元素 from lxml import etr
在Relationship下,我只想保留具有TO_FDN="FtpServer=,并删除所有其他内容。如何在 python 2.6 中使用 etree 来做到这一点?
尝试使用 lxml 生成 xml 文件。 在 API 文档中指出 xmlfile 类存在: http://lxml.de/api/lxml.etree.xmlfile-class.html 我使用导入
我想在 Python 中创建一个像这样的元素树: 我想将其用作一个空模板,以便稍后使用。但是,我无法插入或附加多个 元素到元素,不过 etree.SubElement作品。更具体
我有一个脚本,它使用 xml.etree.ElementTree 来解析 XML 文件,并且应该向元素添加一个子元素。我有两种方法,这两种方法在技术上都有效,但当我使用 ET.dump(root) 转
我有一个 XML 格式的 ISM 文件(InstallShield 项目)。 我需要更改文件中的一些属性,因此我使用了 xml.etree.ElementTree(Python 库)。 我可以找到这些
我正在遍历 XML 树,但从树中提取节点而留下其内部节点时遇到了一些麻烦。 例如:
为了向现有元素添加新的子元素,我必须调用类方法,并将父元素作为参数。我希望子元素的创建是即将成为父元素的实例方法,并将子元素(来自 Element 构造函数)作为唯一的形式参数。 实际: #!/usr
我是一名优秀的程序员,十分优秀!