On Tue, Mar 05, 2013 at 05:56:54PM +0200, Andrey Lebedev wrote:
On 03/05/2013 05:10 PM, Brian Sutherland wrote:
So far, it seems webtest has all the features needed to do the
switch. I started a branch at github ([2]) to track work in progress. The goal is to make most (say 80%) of existing tests to work without modifications under new implementation.
Looking at the branch, it seems that this is basically going to be a re-write of the existing code.
Yes, it is a re-write, but not re-write from scratch. I use existing code as much as possible.
You're planning to keep the mechanize backend available?
Initially we didn't plan to keep mechanize. I think it would add an unjustified burden of choice to users (which backend to pick, if they work the same way?) and mechanize backend will/may not work in python3 anyway.
The question of how compatible the webtest-based implementation will be, is still an open one though. However, we have a big real-world project to test compatibility against.
You're right, the big question is how compatible the WebTest version will be. I don't think anyone will object to a drop-in replacement. Having to modify 20% of existing tests sounds like a lot. I guess we'll have to see how compatible the new browser will be. I'm willing to pitch in by testing it against my own application, please let me know when/if you want me to do that.
Might I suggest zope.testbrowser.webtest for the WebTest backed testbrowser rather than zope.testbrowser.browser2?
I admit there is a bit of mess right now in the branch as I need to preserve existing code to copy when applicable. My plan is to rename z.t.browser2 to z.t.browser eventually, so it is not a final name.
Ok!
Could you also keep the tests for the mechanize testbrowser intact? They could be skipped if mechanize is not importable and mechanize downgraded to an optional dependency.
Again, if the compatibility of new implementation is proven to be "good enough", I see no reason to keep mechanize around. I might miss some important reasons, though.
One thing which I'm not sure you can do with a webtest backend is using it as a real browser. i.e. you'll probably not get over_the_wire.txt to pass. However, I don't know of anyone who actually uses that functionality. Hmm, though I guess you can have a WSGI application that fires off real HTTP requests... -- Brian Sutherland