unit test nested functions

Benji York benji at benjiyork.com
Sat Jul 23 12:20:08 EDT 2005


Raymond Hettinger wrote:
> [Andy]
>>How can you unit test nested functions? 

> For whitebox testing, you could make an inner function visible by
> binding it to the enclosing function's attribute namespace.
> 
>    def f(x):
>        def g(y):
>           . . .
>        f.g = g        # make g visible as an attribute of f
>        . . .

Note that when using this technique, f.g will not be bound until after 
you call the function:

 >>> def f(x):
...     def g(y):
...         pass
...     f.g = g
...
 >>> f
<function f at 0xb7df3df4>
 >>> f.g
Traceback (most recent call last):
   File "<stdin>", line 1, in ?
AttributeError: 'function' object has no attribute 'g'
 >>> f(1)
 >>> f.g
<function g at 0xb7df3e2c>
--
Benji York





More information about the Python-list mailing list