From my tests, ``wraps`` is not needed in this case. The reason why is because I don't return the result of a call to ``fn``, but I return ``fn`` itself. 

<pre>def skip_if(skip):
    def decorator(fn):
        '''decorator doc'''
        if skip:
            raise Exception('Nope, Chuck Testa')
        else:
            return fn
    return decorator

@skip_if(False)
def myfunc():
    '''myfunc doc'''
    print 'Is that a bear in my garden? '

print myfunc.__name__
# myfunc
print myfunc.__doc__
# myfunc doc
</pre>

I think the main difference comes from the fact that here we decorate a class and not a function. We need to return the class object and not "call" it so nose can call all the tests itself. Does that make sense?