[Checkins] SVN: zope.testbrowser/trunk/ Fixed Python2.7 compatibility in Browser.handleErrors.

Jan-Jaap Driessen jdriessen at thehealthagency.com
Thu Oct 14 13:08:38 EDT 2010


Log message for revision 117561:
   Fixed Python2.7 compatibility in Browser.handleErrors. 

Changed:
  U   zope.testbrowser/trunk/CHANGES.txt
  U   zope.testbrowser/trunk/src/zope/testbrowser/browser.py
  U   zope.testbrowser/trunk/src/zope/testbrowser/testing.py

-=-
Modified: zope.testbrowser/trunk/CHANGES.txt
===================================================================
--- zope.testbrowser/trunk/CHANGES.txt	2010-10-14 16:22:17 UTC (rev 117560)
+++ zope.testbrowser/trunk/CHANGES.txt	2010-10-14 17:08:37 UTC (rev 117561)
@@ -5,7 +5,7 @@
 3.10.2 (unreleased)
 -------------------
 
-- Nothing changed yet.
+- Fixed Python2.7 compatibility in Browser.handleErrors.
 
 
 3.10.1 (2010-09-21)

Modified: zope.testbrowser/trunk/src/zope/testbrowser/browser.py
===================================================================
--- zope.testbrowser/trunk/src/zope/testbrowser/browser.py	2010-10-14 16:22:17 UTC (rev 117560)
+++ zope.testbrowser/trunk/src/zope/testbrowser/browser.py	2010-10-14 17:08:37 UTC (rev 117561)
@@ -212,17 +212,22 @@
 
         def get(self):
             headers = self.mech_browser.addheaders
-            return dict(headers).get(header_key, True)
+            value = dict(headers).get(header_key, True)
+            return {'false': False}.get(value, True)
 
         def set(self, value):
             headers = self.mech_browser.addheaders
             current_value = get(self)
             if current_value == value:
                 return
-            if header_key in dict(headers):
-                headers.remove((header_key, current_value))
-            headers.append((header_key, value))
 
+            # Remove the current header...
+            for key, header_value in headers[:]:
+                if key == header_key:
+                    headers.remove((key, header_value))
+            # ... Before adding the new one.
+            headers.append((header_key, {False: 'false'}.get(value, 'true')))
+
         return property(get, set)
 
     def open(self, url, data=None):

Modified: zope.testbrowser/trunk/src/zope/testbrowser/testing.py
===================================================================
--- zope.testbrowser/trunk/src/zope/testbrowser/testing.py	2010-10-14 16:22:17 UTC (rev 117560)
+++ zope.testbrowser/trunk/src/zope/testbrowser/testing.py	2010-10-14 17:08:37 UTC (rev 117561)
@@ -54,9 +54,11 @@
             handle_errors_key = 'X-Zope-Handle-Errors'
         else:
             handle_errors_key = 'X-zope-handle-errors'
-        handle_errors = headers.get(handle_errors_key, True)
+        handle_errors_header = headers.get(handle_errors_key, True)
         if handle_errors_key in headers:
             del headers[handle_errors_key]
+        # Translate string to boolean.
+        handle_errors = {'false': False}.get(handle_errors_header, True)
 
         # Construct the headers.
         header_chunks = []



More information about the checkins mailing list