[python-nl] testing

Johnny deBris johnny at johnnydebris.net
Fri Apr 23 12:37:36 CEST 2010


C.T. Matsumoto wrote:
> Does anyone know a good way to test function objects? It's easy enough 
> to test class attributes, but for some reason I'm finding it difficult 
> to test if a function has the right 'attributes'.
>
Do you mean local variables? In that case, I would suggest not to test 
those - the idea is that you test whether your function does the right 
thing, not _how_ it does that... You test the results of certain 
arguments (both expected and unexpected), and whether the function 
returns or raises the right thing when those arguments are provided, in 
the most optimal situation even before you write code, what local 
variables the function uses internally does not matter, as long as it 
does the right thing.

To answer your question though: theoretically you could ask a function 
for its constant values (foo.func_code.co_locals) and for the name of 
its local variables (foo.func_code.co_varnames), then remove the first 
item from the const list (not sure what that is, seems to always be 
None) and remove the first items that are variables from the local 
variable names list (see foo.func_code.co_argcount), or something like 
that (I may be missing some things here, but I guess you'll have plenty 
to play with from here. :)

Cheers,

Guido



More information about the Python-nl mailing list