创建一个名为valu的autospec'd mock

2024-04-25 15:01:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用mock.create_autospec创建一个带有namekwarg的autospecc'd mock。但是,每当我设置TypeErrorkwarg时,就会出现一个TypeError异常。在

下面是一个例子:

>>> import mock
>>> def a():
...  print "blah"
... 
>>> a()
blah
>>> q = mock.create_autospec(a)
>>> q
<function a at 0x7f184ceb1938>
>>> q()
<MagicMock name='mock()' id='139742347069904'>

mock()不是MagicMock对象的一个非常描述性的名称,因此我尝试为name设置一个值:

^{pr2}$

为什么会这样?当我试着做一个常规的MagicMock时,一切都很顺利:

>>> q = mock.MagicMock(name="a")
>>> q
<MagicMock name='a' id='139742346475088'>

Tags: nameimportiddefcreatemock例子blah
1条回答
网友
1楼 · 发布于 2024-04-25 15:01:27

它看起来像是提供的名称和生成的名称之间的冲突。可能是个bug,所以你应该试着报告它。在

还有另一种方法可以使用有意义的名称创建autospec'd mock,但它需要修补:

with mock.patch('__main__.a', autospec=True):
    print(repr(a()))

# <MagicMock name='a()' id='140705539482000'>

相关问题 更多 >

    热门问题