[Checkins]
SVN: zope.testbrowser/branches/benji-remove-mechanize-vendor-import/
finish getting testbrowser working with current,
non-patched mechanize
Benji York
benji at zope.com
Sun Mar 23 20:49:39 EDT 2008
Log message for revision 84899:
finish getting testbrowser working with current, non-patched mechanize
Changed:
U zope.testbrowser/branches/benji-remove-mechanize-vendor-import/buildout.cfg
U zope.testbrowser/branches/benji-remove-mechanize-vendor-import/src/zope/testbrowser/browser.py
A zope.testbrowser/branches/benji-remove-mechanize-vendor-import/src/zope/testbrowser/fixed-bugs.txt
U zope.testbrowser/branches/benji-remove-mechanize-vendor-import/src/zope/testbrowser/over_the_wire.txt
U zope.testbrowser/branches/benji-remove-mechanize-vendor-import/src/zope/testbrowser/tests.py
-=-
Modified: zope.testbrowser/branches/benji-remove-mechanize-vendor-import/buildout.cfg
===================================================================
--- zope.testbrowser/branches/benji-remove-mechanize-vendor-import/buildout.cfg 2008-03-24 00:47:19 UTC (rev 84898)
+++ zope.testbrowser/branches/benji-remove-mechanize-vendor-import/buildout.cfg 2008-03-24 00:49:38 UTC (rev 84899)
@@ -1,8 +1,14 @@
[buildout]
develop = .
parts = test interpreter
-index = http://download.zope.org/zope3.4
+versions = versions
+extends = http://download.zope.org/zope3.4/versions.cfg
+[versions]
+zope.testbrowser =
+zope.publisher = 3.5.1
+zope.app.publication = 3.4.2
+
[test]
recipe = zc.recipe.testrunner
defaults = ['--tests-pattern', '^f?tests$']
Modified: zope.testbrowser/branches/benji-remove-mechanize-vendor-import/src/zope/testbrowser/browser.py
===================================================================
--- zope.testbrowser/branches/benji-remove-mechanize-vendor-import/src/zope/testbrowser/browser.py 2008-03-24 00:47:19 UTC (rev 84898)
+++ zope.testbrowser/branches/benji-remove-mechanize-vendor-import/src/zope/testbrowser/browser.py 2008-03-24 00:49:38 UTC (rev 84899)
@@ -223,6 +223,7 @@
def open(self, url, data=None):
"""See zope.testbrowser.interfaces.IBrowser"""
+ url = str(url)
self._start_timer()
try:
try:
@@ -280,7 +281,7 @@
def addHeader(self, key, value):
"""See zope.testbrowser.interfaces.IBrowser"""
- self.mech_browser.addheaders.append( (key, value) )
+ self.mech_browser.addheaders.append( (str(key), str(value)) )
def getLink(self, text=None, url=None, id=None, index=0):
"""See zope.testbrowser.interfaces.IBrowser"""
@@ -386,8 +387,12 @@
else:
label = None
self._start_timer()
- self.mech_browser.open(form.click(
- id=control.id, name=control.name, label=label, coord=coord))
+ try:
+ self.mech_browser.open(form.click(
+ id=control.id, name=control.name, label=label, coord=coord))
+ except Exception, e:
+ fix_exception_name(e)
+ raise
self._stop_timer()
def _changed(self):
Added: zope.testbrowser/branches/benji-remove-mechanize-vendor-import/src/zope/testbrowser/fixed-bugs.txt
===================================================================
--- zope.testbrowser/branches/benji-remove-mechanize-vendor-import/src/zope/testbrowser/fixed-bugs.txt (rev 0)
+++ zope.testbrowser/branches/benji-remove-mechanize-vendor-import/src/zope/testbrowser/fixed-bugs.txt 2008-03-24 00:49:38 UTC (rev 84899)
@@ -0,0 +1,27 @@
+Unicode URLs
+============
+
+Unicode URLs or headers cause the entire constructed request to be unicode, and
+(as of Python 2.4.4) Cookie.SimpleCookie checks the type of the input against
+type(""), so it handles the value inappropriately, causing exceptions that
+ended with::
+
+ File "/home/benji/Python-2.4.4/lib/python2.4/Cookie.py", line 623, in load
+ self.update(rawdata)
+ ValueError: dictionary update sequence element #0 has length 1; 2 is required
+
+As a work-around, unicode strings passed to Browser.open() are now converted to
+ASCII before being passed on, as well as the key and value passed to
+Browser.addHeader().
+
+The tests below failed before the change was put in place.
+
+ >>> from zope.testbrowser.testing import Browser
+ >>> browser = Browser()
+ >>> browser.addHeader('Cookie', 'test')
+ >>> browser.open(u'http://localhost/@@/testbrowser/simple.html')
+
+ >>> from zope.testbrowser.testing import Browser
+ >>> browser = Browser()
+ >>> browser.addHeader(u'Cookie', 'test')
+ >>> browser.open('http://localhost/@@/testbrowser/simple.html')
Property changes on: zope.testbrowser/branches/benji-remove-mechanize-vendor-import/src/zope/testbrowser/fixed-bugs.txt
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: zope.testbrowser/branches/benji-remove-mechanize-vendor-import/src/zope/testbrowser/over_the_wire.txt
===================================================================
--- zope.testbrowser/branches/benji-remove-mechanize-vendor-import/src/zope/testbrowser/over_the_wire.txt 2008-03-24 00:47:19 UTC (rev 84898)
+++ zope.testbrowser/branches/benji-remove-mechanize-vendor-import/src/zope/testbrowser/over_the_wire.txt 2008-03-24 00:49:38 UTC (rev 84899)
@@ -33,6 +33,6 @@
>>> browser.getControl('Google Search').click()
Traceback (most recent call last):
...
- HTTPError: HTTP Error 403: request disallowed by robots.txt
+ RobotExclusionError: HTTP Error 403: request disallowed by robots.txt
Oops! Google doesn't let robots use their search engine. Oh well.
Modified: zope.testbrowser/branches/benji-remove-mechanize-vendor-import/src/zope/testbrowser/tests.py
===================================================================
--- zope.testbrowser/branches/benji-remove-mechanize-vendor-import/src/zope/testbrowser/tests.py 2008-03-24 00:47:19 UTC (rev 84898)
+++ zope.testbrowser/branches/benji-remove-mechanize-vendor-import/src/zope/testbrowser/tests.py 2008-03-24 00:49:38 UTC (rev 84899)
@@ -382,14 +382,21 @@
def test_suite():
flags = doctest.NORMALIZE_WHITESPACE | doctest.ELLIPSIS
+
readme = FunctionalDocFileSuite('README.txt', optionflags=flags,
checker=checker)
readme.layer = TestBrowserLayer
+
+ fixed_bugs = FunctionalDocFileSuite('fixed-bugs.txt', optionflags=flags)
+ fixed_bugs.layer = TestBrowserLayer
+
wire = FunctionalDocFileSuite('over_the_wire.txt', optionflags=flags)
wire.level = 2
wire.layer = TestBrowserLayer
+
this_file = doctest.DocTestSuite(checker=checker)
- return unittest.TestSuite((this_file, readme, wire))
+ return unittest.TestSuite((this_file, readme, fixed_bugs, wire))
+
if __name__ == '__main__':
unittest.main(defaultTest='test_suite')
More information about the Checkins
mailing list