[Checkins] SVN: zope.testbrowser/trunk/ Provide a work around for mechanize/urllib2 that have a broken fragment URL
Christian Theune
ct at gocept.com
Fri Aug 15 09:19:55 EDT 2008
Log message for revision 89880:
Provide a work around for mechanize/urllib2 that have a broken fragment URL
- Provide a work around for a mechanize/urllib2 bug in creating request
objects that won't handle fragment URLs correctly.
Changed:
U zope.testbrowser/trunk/CHANGES.txt
U zope.testbrowser/trunk/src/zope/testbrowser/fixed-bugs.txt
A zope.testbrowser/trunk/src/zope/testbrowser/ftests/fragment.html
U zope.testbrowser/trunk/src/zope/testbrowser/testing.py
-=-
Modified: zope.testbrowser/trunk/CHANGES.txt
===================================================================
--- zope.testbrowser/trunk/CHANGES.txt 2008-08-15 12:51:12 UTC (rev 89879)
+++ zope.testbrowser/trunk/CHANGES.txt 2008-08-15 13:19:55 UTC (rev 89880)
@@ -6,6 +6,9 @@
3.5.0 (unreleased)
------------------
+- Provide a work around for a mechanize/urllib2 bug in creating request
+ objects that won't handle fragment URLs correctly.
+
- Added a zope.testbrowser.testing.Browser.post method that allows
tests to supply a body and a content type. This is handy for
testing Ajax requests with non-form input (e.g. JSON).
Modified: zope.testbrowser/trunk/src/zope/testbrowser/fixed-bugs.txt
===================================================================
--- zope.testbrowser/trunk/src/zope/testbrowser/fixed-bugs.txt 2008-08-15 12:51:12 UTC (rev 89879)
+++ zope.testbrowser/trunk/src/zope/testbrowser/fixed-bugs.txt 2008-08-15 13:19:55 UTC (rev 89880)
@@ -75,3 +75,18 @@
>>> browser.getControl('Three').optionValue
'3'
+
+Fragment URLs
+=============
+
+Earlier versions of mechanize used to incorrectly follow links containing
+fragments. We upgraded our dependency to a newer version of mechanize and make
+sure this regression doesn't come back:
+
+ >>> import ClientForm
+ >>> browser.open('http://localhost/@@/testbrowser/fragment.html#asdf')
+ >>> browser.url
+ 'http://localhost/@@/testbrowser/fragment.html#asdf'
+ >>> browser.getLink('Follow me')
+ <Link text='Follow me' url='http://localhost/@@/testbrowser/fragment.html#foo'>
+ >>> browser.getLink('Follow me').click()
Added: zope.testbrowser/trunk/src/zope/testbrowser/ftests/fragment.html
===================================================================
--- zope.testbrowser/trunk/src/zope/testbrowser/ftests/fragment.html (rev 0)
+++ zope.testbrowser/trunk/src/zope/testbrowser/ftests/fragment.html 2008-08-15 13:19:55 UTC (rev 89880)
@@ -0,0 +1,5 @@
+<html>
+ <body>
+ <a href="http://localhost/@@/testbrowser/fragment.html#foo">Follow me</a>
+ </body>
+</html>
Modified: zope.testbrowser/trunk/src/zope/testbrowser/testing.py
===================================================================
--- zope.testbrowser/trunk/src/zope/testbrowser/testing.py 2008-08-15 12:51:12 UTC (rev 89879)
+++ zope.testbrowser/trunk/src/zope/testbrowser/testing.py 2008-08-15 13:19:55 UTC (rev 89880)
@@ -158,6 +158,9 @@
for name in inherited_handlers:
self.handler_classes[name] = mechanize.Browser.handler_classes[name]
+ kws['request_class'] = kws.get('request_class',
+ mechanize._request.Request)
+
mechanize.Browser.__init__(self, *args, **kws)
More information about the Checkins
mailing list