]> git.llucax.com Git - software/pymin.git/commit
Improve detection of bad arguments errors in dispatcher handlers.
authorLeandro Lucarella <llucax@gmail.com>
Mon, 31 Dec 2007 17:08:45 +0000 (15:08 -0200)
committerLeandro Lucarella <llucax@gmail.com>
Mon, 31 Dec 2007 17:08:45 +0000 (15:08 -0200)
commitd7f91959fe7161589c44463db1031a5819fd1229
tree7e7f08dd49db0f0e72bb9fe81084fa4559528547
parent0f712a015de9e15849ef89bce5bcfb855f841b89
Improve detection of bad arguments errors in dispatcher handlers.

The previos scheme was based on parsing TypeError messages, so it was very
poor because spourious errors could have been raised (is a subcall inside
a handler made a wrong function call). The new scheme involves a wrapper
with a dummy function with the same signature as the original handler.
The wrapper then call the dummy function to check the arguments and catches
any TypeError in that NOP call. If an error is catched, it's translated to
a WrongArgumentError, if not, the real hanlder is called with that (now
knonw to be right) arguments.

Testcases were updated and extended too.
pymin/dispatcher.py