[Checkins] SVN: zope.testbrowser/trunk/ More friendly error message from getControl() when index is out of bounds.
Marius Gedminas
marius at pov.lt
Tue Feb 7 19:19:11 UTC 2012
Log message for revision 124328:
More friendly error message from getControl() when index is out of bounds.
Changed:
U zope.testbrowser/trunk/CHANGES.txt
U zope.testbrowser/trunk/src/zope/testbrowser/README.txt
U zope.testbrowser/trunk/src/zope/testbrowser/browser.py
-=-
Modified: zope.testbrowser/trunk/CHANGES.txt
===================================================================
--- zope.testbrowser/trunk/CHANGES.txt 2012-02-07 19:09:30 UTC (rev 124327)
+++ zope.testbrowser/trunk/CHANGES.txt 2012-02-07 19:19:10 UTC (rev 124328)
@@ -12,6 +12,10 @@
environment by setting it to ``None`` when ``Browser.handleErrors`` is
``True``. This makes it easier to test error pages.
+- More friendly error message from getControl() et al when you specify
+ an index that is out of bounds.
+
+
4.0.2 (2011-05-25)
------------------
Modified: zope.testbrowser/trunk/src/zope/testbrowser/README.txt
===================================================================
--- zope.testbrowser/trunk/src/zope/testbrowser/README.txt 2012-02-07 19:09:30 UTC (rev 124327)
+++ zope.testbrowser/trunk/src/zope/testbrowser/README.txt 2012-02-07 19:19:10 UTC (rev 124328)
@@ -516,6 +516,13 @@
<ListControl name='ambiguous-subcontrol' type='select'>
>>> browser.getControl('Sub-control Ambiguity', index=1).optionValue
'ambiguous'
+ >>> browser.getControl('Sub-control Ambiguity', index=2)
+ Traceback (most recent call last):
+ ...
+ LookupError: label 'Sub-control Ambiguity'
+ Index 2 out of range, available choices are 0...1
+ 0: <SelectControl(ambiguous-subcontrol=[*, ambiguous])>
+ 1: <Item name='ambiguous' id=None contents='Sub-control Ambiguity Exemplified' value='ambiguous' label='Sub-control Ambiguity Exemplified'>
Label searches are against stripped, whitespace-normalized, no-tag versions of
the text. Text applied to searches is also stripped and whitespace normalized.
Modified: zope.testbrowser/trunk/src/zope/testbrowser/browser.py
===================================================================
--- zope.testbrowser/trunk/src/zope/testbrowser/browser.py 2012-02-07 19:09:30 UTC (rev 124327)
+++ zope.testbrowser/trunk/src/zope/testbrowser/browser.py 2012-02-07 19:19:10 UTC (rev 124328)
@@ -47,8 +47,12 @@
else:
try:
return intermediate[index]
- except KeyError:
- msg = '%s index %d' % (msg, index)
+ except IndexError:
+ msg = '%s\nIndex %d out of range, available choices are 0...%d' % (
+ msg, index, len(intermediate) - 1)
+ if choice_repr:
+ msg += ''.join(['\n %d: %s' % (n, choice_repr(choice))
+ for n, choice in enumerate(intermediate)])
raise LookupError(msg)
def control_form_tuple_repr((ctrl, form)):
More information about the checkins
mailing list