On 9/4/07, Ferenczi Viktor <[EMAIL PROTECTED]> wrote:
>
> > I assume this is a FAQ, but I couldn't find much helpful information
> > googling. I'm having trouble with doctest skipping my functions, if I'm
> > using decorators (that are defined in a separate module). If I'm
> > understanding what is happening correctly, it's because doctest checks
> if
> > the function's func_global attribute is the same as the module's
> __dict__
> > attribute. The decorator in question returns a wrapping function,
> though,
> > so this check fails.
> > What are some solutions to this? I can define __test__, but it seems
> rather
> > cumbersome.
>
> Please take a look at the documentation of the functools standard module
> in
> the Python manual, especially the wraps decorator. It could probably help.
>
Hmm, not really.
# decorator.py
import functools
def simplelog(f):
@functools.wraps
def new_f(*args, **kwds):
print "Wrapper calling func"
return f(*args, **kwds)
return new_f
# test.py
from decorator import simplelog
@simplelog
def test():
"""
>>> test()
'works!'
"""
return "works!"
if __name__ == '__main__':
import doctest
doctest.testmod()
$ python test.py -v
1 items had no tests:
__main__
0 tests in 1 items.
0 passed and 0 failed.
Test passed.
--
http://mail.python.org/mailman/listinfo/python-list