Hello,<br><br>This is my first time using the python
mock library and I'm a little confused. I'd like to provide some
guarantees that my mocks are being called with the correct number of
arguments. The documentation seems to indicate there are two ways to do
this, "spec" and "mocksignature", but it's a little unclear to me what
the difference is supposed to be between them.<br>
<br>I find myself using the @patch.object decorator almost all the time,
because the modules I'm testing use a lot of top-level functions from
modules they've imported. When I do something like this:<br><br>@patch.object(somemodule, 'somemethod', spec=True)<br>
<br>It doesn't seem to have any effect; I can call somemodule.somemethod
with any combination of invalid arguments and no exceptions are
thrown. However, when I do:<br><br>@patch.object(somemodule, 'somemethod', mocksignature=True)<br>
<br>I get:<br><br>Traceback (most recent call last):<br> File "/usr/lib/python2.6/site-<div id=":57">packages/mock-0.7.0b3-py2.6.egg/mock.py", line 485, in patched<br> arg = patching.__enter__()<br> File "/usr/lib/python2.6/site-packages/mock-0.7.0b3-py2.6.egg/mock.py", line 536, in __enter__<br>
new_attr = mocksignature(original, new)<br> File "/usr/lib/python2.6/site-packages/mock-0.7.0b3-py2.6.egg/mock.py", line 140, in mocksignature<br> signature, func = _getsignature(func, skipfirst)<br> File "/usr/lib/python2.6/site-packages/mock-0.7.0b3-py2.6.egg/mock.py", line 87, in _getsignature<br>
func = func.__call__<br>AttributeError: 'SentinelObject' object has no attribute '__call__'<br><br>What am I missing here?<br><br>Thanks for your help.</div>