[Zope-dev] zope.testbrowser and python2.7

Wolfgang Schnerring ws at gocept.com
Fri Oct 15 03:18:38 EDT 2010


Hello,

* Jan-Jaap Driessen <jdriessen at thehealthagency.com> [2010-10-14 19:19]:
> The httplib.HTTPConnection API changed from python2.6 to python2.7.
> These changes are reflected in the handleErrors property of
> zope.testbrowser.browser.Browser - it is no longer possible to pass a
> boolean into the request headers.

Thanks for looking into this. Forward compatibility is a good thing.

> A fix is available on the trunk of zope.testbrowser [1]. In this
> implementation, a boolean is provided to the consumers of the
> testbrowser API and a string is used in the request headers.
> This implementation is sub-optimal in my opinion. In the branch
> 'janjaapdriessen-handle-errors' [2] you will find a cleaner
> implementation, where the switch to handle_errors is controlled by the
> presence of a "zope-do-not-handle-errors" header.

I agree that the boolean-string translating is a bit ugly, but to be
honest, I also don't not dislike the double negative in your alternative
solution. ;-)

> This change is backwards incompatible. Code relying on the
> 'x-zope-handle-errors' header will break. I have tested this
> implementation against the ZTK trunk on python2.7 and have found no
> breakage of this kind.

I'm definitely fine with changing that header name if necessary, though.
Since that's an implementation detail of zope.testbrowser, it should be
nobody else's business, and your tests seem to confirm this -- excellent.

> Please let me know if either of these solutions is OK with you. If so,
> grant me pypi rights (my handle is 'janjaapdriessen') so I can release
> zope.testbrowser and get a step closer to making the ZTK run on
> python2.7.

I don't have a *strong* opinion which serialization of that flag is less
ugly. I'm leaning towards the trunk one (no double negatives), but
either one is basically fine by me.
I've given you pypi rights for zope.testbrowser.

Wolfgang



More information about the Zope-Dev mailing list