[Checkins] SVN: zope.testbrowser/branches/janjaapdriessen-handle-errors/ use the X-Zope-Do-Not-Handle-Errors header in favor of X-Zope-Handle-Errors
Jan-Jaap Driessen
jdriessen at thehealthagency.com
Thu Oct 14 13:18:24 EDT 2010
Log message for revision 117563:
use the X-Zope-Do-Not-Handle-Errors header in favor of X-Zope-Handle-Errors
Changed:
U zope.testbrowser/branches/janjaapdriessen-handle-errors/CHANGES.txt
U zope.testbrowser/branches/janjaapdriessen-handle-errors/setup.py
U zope.testbrowser/branches/janjaapdriessen-handle-errors/src/zope/testbrowser/browser.py
U zope.testbrowser/branches/janjaapdriessen-handle-errors/src/zope/testbrowser/testing.py
-=-
Modified: zope.testbrowser/branches/janjaapdriessen-handle-errors/CHANGES.txt
===================================================================
--- zope.testbrowser/branches/janjaapdriessen-handle-errors/CHANGES.txt 2010-10-14 17:10:05 UTC (rev 117562)
+++ zope.testbrowser/branches/janjaapdriessen-handle-errors/CHANGES.txt 2010-10-14 17:18:24 UTC (rev 117563)
@@ -2,11 +2,13 @@
CHANGES
=======
-3.10.2 (unreleased)
+3.11.0 (unreleased)
-------------------
- Fixed Python2.7 compatibility in Browser.handleErrors.
+- Browser.handleErrors uses the X-Zope-Do-Not-Handle-Errors header in favor
+ of X-Zope-Handle-Errors.
3.10.1 (2010-09-21)
-------------------
Modified: zope.testbrowser/branches/janjaapdriessen-handle-errors/setup.py
===================================================================
--- zope.testbrowser/branches/janjaapdriessen-handle-errors/setup.py 2010-10-14 17:10:05 UTC (rev 117562)
+++ zope.testbrowser/branches/janjaapdriessen-handle-errors/setup.py 2010-10-14 17:18:24 UTC (rev 117563)
@@ -27,7 +27,7 @@
setup(
name = 'zope.testbrowser',
- version='3.10.2dev',
+ version='3.11dev',
url = 'http://pypi.python.org/pypi/zope.testbrowser',
license = 'ZPL 2.1',
description = 'Programmable browser for functional black-box tests',
Modified: zope.testbrowser/branches/janjaapdriessen-handle-errors/src/zope/testbrowser/browser.py
===================================================================
--- zope.testbrowser/branches/janjaapdriessen-handle-errors/src/zope/testbrowser/browser.py 2010-10-14 17:10:05 UTC (rev 117562)
+++ zope.testbrowser/branches/janjaapdriessen-handle-errors/src/zope/testbrowser/browser.py 2010-10-14 17:18:24 UTC (rev 117563)
@@ -33,6 +33,8 @@
_compress_re = re.compile(r"\s+")
compressText = lambda text: _compress_re.sub(' ', text.strip())
+DO_NOT_HANDLE_ERRORS_KEY = 'X-Zope-Do-Not-Handle-Errors'
+
def disambiguate(intermediate, msg, index):
if intermediate:
if index is None:
@@ -208,25 +210,20 @@
@apply
def handleErrors():
"""See zope.testbrowser.interfaces.IBrowser"""
- header_key = 'X-zope-handle-errors'
-
+
def get(self):
headers = self.mech_browser.addheaders
- value = dict(headers).get(header_key, True)
- return {'false': False}.get(value, True)
+ return DO_NOT_HANDLE_ERRORS_KEY not in dict(headers)
def set(self, value):
headers = self.mech_browser.addheaders
- current_value = get(self)
- if current_value == value:
- return
-
# 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')))
+ for header_key, header_value in headers[:]:
+ if header_key == DO_NOT_HANDLE_ERRORS_KEY:
+ headers.remove((header_key, header_value))
+ # ...before possibly adding the new one.
+ if value is False:
+ headers.append((DO_NOT_HANDLE_ERRORS_KEY, 'true'))
return property(get, set)
Modified: zope.testbrowser/branches/janjaapdriessen-handle-errors/src/zope/testbrowser/testing.py
===================================================================
--- zope.testbrowser/branches/janjaapdriessen-handle-errors/src/zope/testbrowser/testing.py 2010-10-14 17:10:05 UTC (rev 117562)
+++ zope.testbrowser/branches/janjaapdriessen-handle-errors/src/zope/testbrowser/testing.py 2010-10-14 17:18:24 UTC (rev 117563)
@@ -49,16 +49,14 @@
url = '/'
url = self._quote(url)
- # Extract the handle_error option header
- if sys.version_info >= (2,5):
- handle_errors_key = 'X-Zope-Handle-Errors'
- else:
- handle_errors_key = 'X-zope-handle-errors'
- handle_errors_header = headers.get(handle_errors_key, True)
+
+ # Do not handle errors if the DO_NOT_HANDLE_ERRORS_KEY is found in the
+ # headers.
+ handle_errors_key = zope.testbrowser.browser.DO_NOT_HANDLE_ERRORS_KEY
+ handle_errors = True
if handle_errors_key in headers:
+ handle_errors = False
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