如何使用以下代码测试以下代码unittest.mock
:
def testme(filepath):
with open(filepath) as f:
return f.read()
模拟0.7.0中更改了此方法,该模拟最终支持模拟python协议方法(魔术方法),特别是使用MagicMock:
http://www.voidspace.org.uk/python/mock/magicmock.html
作为上下文管理器进行模拟打开的示例(来自模拟文档中的示例页面):
>>> open_name = '%s.open' % __name__
>>> with patch(open_name, create=True) as mock_open:
... mock_open.return_value = MagicMock(spec=file)
...
... with open('/some/path', 'w') as f:
... f.write('something')
...
<mock.Mock object at 0x...>
>>> file_handle = mock_open.return_value.__enter__.return_value
>>> file_handle.write.assert_called_with('something')
问题内容: 我正在研究如何在Python中进行文件输入和输出。我编写了以下代码,以将文件列表中的名称列表(每行一个)读入另一个文件中,同时对照文件中的名称检查名称并将文本附加到文件中的出现位置。该代码有效。可以做得更好吗? 我想对输入和输出文件都使用该语句,但看不到它们如何位于同一块中,这意味着我需要将名称存储在一个临时位置。 问题答案: Python允许将多个语句放在一个语句中。你用逗号分隔。你
问题内容: 我正在研究如何在Python中进行文件输入和输出。我编写了以下代码,以将文件列表中的名称列表(每行一个)读入另一个文件,同时对照文件中的名称检查名称并将文本附加到文件中的出现位置。该代码有效。可以做得更好吗? 我想对输入和输出文件都使用该语句,但看不到它们如何位于同一块中,这意味着我需要将名称存储在一个临时位置。 问题答案: Python允许将多个语句放在一个语句中。您用逗号分隔。您的
问题内容: 我正在尝试使用python模拟模块的函数(返回一些外部内容)。 我在导入模块的模拟函数时遇到了一些麻烦。 例如,在我有 我想嘲笑,以便它返回其他内容。 我正在尝试: 如果在另一个模块中被调用,它实际上似乎永远不会返回模拟对象。我在使用方法方面缺少什么吗? 请注意,如果我调用以下内容,则一切正常: 但是,如果从另一个模块内部调用,它将调用原始函数而不是模拟版本: 内容 所以我想我的问题是
问题内容: 这是将python“ with”语句与try-except块结合使用的正确方法吗? 如果是这样,请考虑使用旧的处理方式: 这里的“ with”语句的主要好处是我们可以摆脱三行代码吗? 对于这个用例,这 似乎并不吸引我(尽管我知道“ with”语句还有其他用途)。 编辑:以上两个代码块的功能是否相同? EDIT2:前几个答案大体上谈及使用“ with”的好处,但是这里似乎没有什么好处。我
问题内容: 我有一些程序在评估病情后想得到某种确认。 例如,pusedocode就像 我应该如何在MySQL中做到这一点? 问题答案: 如果您不想两次将文本用作列标题和值,请使用以下stmt!
如何在测试中启用assert语句?
我正在使用做类似“语法分析器”的事情,使用(常规表达式)。 我只想检查基本操作的有效语法(如|-|*|/|(|))。用户将字符串(用键盘)粘贴到磁带上,我用regex对其进行验证。但我不知道如何在if语句中使用regex。我想要的是:如果用户带给我的字符串不正确(或者没有使用regex检查),请打印类似“inavlid string”的内容,如果正确,请打印“Valid string”。 我尝试过
问题内容: 我想一次更改几个文件,前提是我可以写入所有文件。我想知道是否可以将多个打开的调用与该with语句组合: 如果不可能,那么解决该问题的优雅解决方案会是什么样? 问题答案: 从Python 2.7(或分别为3.1)开始,你可以编写 在早期版本的Python中,有时可以使用嵌套上下文管理器。但是,这对于打开多个文件无法正常工作-有关详细信息,请参见链接的文档。 在极少数情况下,你想同时打开全