草庐IT

mock_func

全部标签

Python unittest : to mock. patch() 或者只是用 Mock 替换方法?

在Python中编写单元测试时模拟类或方法时,为什么需要使用@patch装潢师?我可以在没有任何补丁注释的情况下用Mock对象替换该方法。例子:classTestFoobar(unittest.TestCase):defsetUp(self):self.foobar=FooBar()#1)Withpatchdecorator:@patch.object(FooBar,"_get_bar")@patch.object(FooBar,"_get_foo")deftest_get_foobar_with_patch(self,mock_get_foo,mock_get_bar):mock_g

python - func(*args, **kwargs, x) 抛出无效语法

又把自己研究到墙角了...defsuperfunction(*args,**kwargs,k):^SyntaxError:invalidsyntax我在这里违反的规则是什么?似乎你不应该将“常规”变量与*变量混合使用,但我找不到任何人来证实或否认这一点。我在某处读到(当然我现在找不到)某些类型的参数必须放在第一位,我相信关键字参数,这可能是也可能不是我的问题的一部分。 最佳答案 试试这个:defsuperfunction(k,*args,**kwargs):**kwargs变量关键字参数必须是函数声明的最后一部分。倒数第二个,*ar

python - 在 Python 中使用 Mock()

您能否给出一些在Django单元测试中使用Mock()的清晰示例?我想更清楚地了解它。更新:我想出了一些东西,所以我在下面分享。 最佳答案 第1部分:基础知识frommockimportMock模拟对象是一种对象,它是一种用于代码的Dummy我们不想被执行,但我们想知道一些信息(调用次数,调用参数)。此外,我们可能希望为该代码指定一个返回值。让我们定义一个简单的函数:deffoo(value):returnvalue+value现在我们准备为它创建一个Mock对象:mock_foo=Mock(foo,return_value='mo

python - 如何使用 Python Mock 引发异常 - 但将 Errno 设置为给定值

给定这段Python代码:elifrequest.method=='DELETE':try:os.remove(full_file)returnjsonify({'results':'purged%s'%full_file})exceptOSErrorase:ife.errno!=errno.ENOENT:raisereturnjsonify({'results':'filenotpresent:%s'%full_file})我想测试所有可能的路径,包括异常处理。使用Mock,很容易引发一个异常,我用这段代码来做到这一点:withpatch('os.remove',new=Mock(s

python - :func: and :meth: roles in Python Sphinx? 之间的行为有什么区别

位于http://www.sphinx-doc.org/en/stable/domains.html#cross-referencing-python-objects的Sphinx文档说,:py:func:ReferenceaPythonfunction;dottednamesmaybeused.Theroletextneedsnotincludetrailingparenthesestoenhancereadability;theywillbeaddedautomaticallybySphinxiftheadd_function_parenthesesconfigvalueisTru

python - 为什么 mock 会添加 __nonzero__ 方法调用?

我有一些代码可以调用集合中每个项目的一系列方法,每个方法返回一个bool值,指示成功=True/failure=False。defmonkey(some_collection,arg1,arg2):foriteminsome_collection:ifnotitem.foo(arg1,arg2):continueifnotitem.bar(arg1,arg2):continueifnotitem.baz(arg1,arg2):continue而且,这是我的单元测试示例:importmockdefTestFoo(unittest.TestCase):deftest_monkey(self

python - 如何让 mock.mock_open 引发 IOError?

我需要测试调用open的实例方法。在第一个测试用例中,我将mock.mock_open设置为按预期返回一个字符串。这非常有效。但是,我还需要测试从该函数中抛出IOError的情况。如何让mock.mock_open引发任意异常?到目前为止,这是我的方法:@mock.patch.object(somemodule,'generateDefaultKey')deftest_load_privatekey(self,genkey)mo=mock.mock_open(read_data=self.key)mo.side_effect=IOErrorwithmock.patch('__main_

python - PyMODINIT_FUNC 和 PyModule_Create 之间的区别

如果我没理解错的话,Python2.X中的PyMODINIT_FUNC已被Python3.X中的PyModule_Create取代两者都返回PyObject*,但是,在Python3.X中,模块的初始化函数必须返回PyObject*到模块-即PyMODINIT_FUNCPyInit_spam(void){returnPyModule_Create(&spammodule);}而在Python2.X中,这不是必需的-即PyMODINIT_FUNCinitspam(void){(void)Py_InitModule("spam",SpamMethods);}所以,我的健全性检查问题是:我的

Python3 + pytest + pytest 模拟 : Mocks leaking into other test functions breaking assertions?

注意:有关我的设置(python版本、模块等)的所有详细信息都列在问题底部。如果这个问题很明显,请提前致歉,但我已经为此苦苦挣扎了好几天。希望有人可以阐明一些新的观点。我正在为我的个人项目从unittest->pytest转换单元测试。以前我使用的是内置的unittest.mock模块,但现在我正在尝试使用pytest-mock插件。我有一种潜移默化的感觉,我的测试正在将模拟对象泄漏到彼此中。原因如下:高级细节:#PythonversionPython3.5.2#Pytestversion(andplugins)pytest==3.0.7pytest-benchmark==3.1.0a

python - Python 中 SciPy 树状图的自定义簇颜色(link_color_func?)

我想用我以字典形式制作的彩色图(即{leaf:color})为我的簇着色。我试过关注https://joernhees.de/blog/2015/08/26/scipy-hierarchical-clustering-and-dendrogram-tutorial/但由于某种原因颜色变得困惑。默认图看起来不错,我只是想以不同方式分配这些颜色。我看到有一个link_color_func但是当我尝试使用我的颜色映射(D_leaf_color字典)时我得到了一个错误b/c它不是一个函数。我创建了D_leaf_color来自定义与特定簇关联的叶子的颜色。在我的实际数据集中,颜色具有某种意义,因