On 9/5/07, Ferenczi Viktor <[EMAIL PROTECTED]> wrote:
>
> > > @functools.wraps(f)
> > > Pass the function to be wrapped by the decorator to the wraps
> function.
> > Ooops, right. That doesn't change the fact that decorated functions get
> > hidden from doctest though.


I have no issue when the decorator is defined in the same module as the
decorated function, my problem is running doctests on functions using an
imported decorator. Having to implement the decorator in every source module
isn't very practical. Try splitting your module in two, as I did, and run
with -v, and you'll see the problem.

Run my test script (one file) with the -v (verbose) option. Without the -v
> option it does not show output. This fact is documented in the Python
> manual
> at the doctest module.
>
> --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
> import functools
>
> def simplelog(f):
>     @functools.wraps(f)
>     def new_f(*args, **kwds):
>         print "Wrapper calling func"
>         return f(*args, **kwds)
>     return new_f
>
> @simplelog
> def test():
>     """
>     >>> test()
>     Wrapper calling func
>     'works!'
>     """
>     return 'works!'
>
> def fn():
>     """
>     >>> fn()
>     'ok'
>     """
>     return 'ok'
>
> if __name__ == '__main__':
>     import doctest
>     doctest.testmod()
> --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
>
> Regard, Viktor
> --
> http://mail.python.org/mailman/listinfo/python-list
>
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to