]> 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 16:38:12 +0000 (14:38 -0200)
committerLeandro Lucarella <llucax@gmail.com>
Mon, 31 Dec 2007 16:38:12 +0000 (14:38 -0200)
commit8e25f907e1bd7427f13d34632d4aba70b3da51f2
treeaeab069ec8175c3b0e157032882cd142e2c0ed00
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