This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author Aaron Gallagher
Recipients Aaron Gallagher
Date 2017-01-31.23:01:55
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1485903715.23.0.569013669104.issue29403@psf.upfronthosting.co.za>
In-reply-to
Content
Cython will, in the right circumstances, offer a MethodType instance where im_func is a builtin function. Any instance of MethodType is automatically assumed to be a python-defined function (more specifically, a function that has an inspectable signature), but _set_signature was still conservative in its assumptions. As a result _set_signature would return early with None instead of a mock since the im_func had no inspectable signature. This causes problems deeper inside mock, as _set_signature is assumed to always return a mock, and nothing checked its return value.

In similar corner cases, autospec will simply not check the spec of the function, so _set_signature is amended to now return early with the original, not-wrapped mock object.

There is another None early return in _set_signature, but it seems.. harder to trigger? It seems more appropriate to raise an exception there if this is being fixed.
History
Date User Action Args
2017-01-31 23:01:55Aaron Gallaghersetrecipients: + Aaron Gallagher
2017-01-31 23:01:55Aaron Gallaghersetmessageid: <1485903715.23.0.569013669104.issue29403@psf.upfronthosting.co.za>
2017-01-31 23:01:55Aaron Gallagherlinkissue29403 messages
2017-01-31 23:01:55Aaron Gallaghercreate