in doubles/verification.py [0:0]
def verify_method(target, method_name, class_level=False):
"""Verifies that the provided method exists on the target object.
:param Target target: A ``Target`` object containing the object with the method to double.
:param str method_name: The name of the method to double.
:raise: ``VerifyingDoubleError`` if the attribute doesn't exist, if it's not a callable object,
and in the case where the target is a class, that the attribute isn't an instance method.
"""
attr = target.get_attr(method_name)
if not attr:
raise VerifyingDoubleError(method_name, target.doubled_obj).no_matching_method()
if attr.kind == 'data' and not isbuiltin(attr.object) and not is_callable(attr.object):
raise VerifyingDoubleError(method_name, target.doubled_obj).not_callable()
if class_level and attr.kind == 'method' and method_name != '__new__':
raise VerifyingDoubleError(method_name, target.doubled_obj).requires_instance()