import inspect


def _has_defaults_for_all_args(init):
    """Tests whether the init method has defaults for all arguments."""
    signature = inspect.getfullargspec(init)
    n_default_args = 0 if not signature.defaults else len(signature.defaults)
    n_args = len(signature.args) - 1 if 'self' in signature.args else len(signature.args)
    return n_args == n_default_args