[Zope] Cool monkey patch to make tracebacks more useful :-)

Chris Withers chris at simplistix.co.uk
Fri Jul 15 15:31:49 EDT 2005


Lennart Regebro wrote:
>>This bugged me, so I had a dig, and just discovered this cool monkey
>>patch, to be inserted in any module that gets imported before an
>>exception is raised:
> 
> So, could this be in the unit test module itself, for example?

Well, like I said, I'm gonna roll up a load of these type patches into a 
little product and release it :-)
(the benefits of this product would only be missed if an error occurred 
before it was imported, and the benefits aren't likely to be very 
beneficial at that stage ;-)

> Ever noticed how it's near impossible to figure out what actually
> causes an error when you run functional tests? Can you fix that too?
> :-)

Depends what you mean by "functional tests"!

> I used to do this in all my functional test cases:
> 
>     def getTraceback(self, response):
>         return getattr(response._response, '_text_traceback', None)
> 
>     def assertResponse(self, response, status, message=''):
>         if not response.getStatus() == status:
>             tb = self.getTraceback(response)
>             if tb is not None:
>                 raise self.failureException, tb
>             else:
>                 raise ValueError, "Response had status %s, expected %s. %s" % (
>                     response.getStatus(), status, message)


Hmm, if something failed, I'd just consult the event log, which I always 
copy all errors to.

> And then end all my tests with:
>         self.assertResponse(response, 200)

Sounds good, but we use Zelenium ;-)

> And that _used_ to print out any exception that had occurred, but in
> newer version of Zope this never happens. There sinmply never is and
> _text_exception on the response anymore. Any ideas on how to get a
> useable exception report on unit tests?

Ugh? on unit tests? my patch works exactly as I want on unit tests. 
What, specifically, are you referring to?

cheers,

Chris

-- 
Simplistix - Content Management, Zope & Python Consulting
            - http://www.simplistix.co.uk



More information about the Zope mailing list