[Checkins] SVN: gocept.selenium/trunk/src/gocept/selenium/selenese.py simplified name mangling to get more consistent error messages
Thomas Lotze
tl at gocept.com
Tue Mar 16 06:55:24 EDT 2010
Log message for revision 109982:
simplified name mangling to get more consistent error messages
Changed:
U gocept.selenium/trunk/src/gocept/selenium/selenese.py
-=-
Modified: gocept.selenium/trunk/src/gocept/selenium/selenese.py
===================================================================
--- gocept.selenium/trunk/src/gocept/selenium/selenese.py 2010-03-15 15:41:18 UTC (rev 109981)
+++ gocept.selenium/trunk/src/gocept/selenium/selenese.py 2010-03-16 10:55:24 UTC (rev 109982)
@@ -282,15 +282,13 @@
return (lambda *args, **kw:
self._waitFor(assertion, *args, **kw))
+ positive = True
if 'Not' in name:
name = name.replace('Not', '', 1)
- assertion = getattr(self, name)
- return (lambda *args, **kw:
- self._negate(assertion, *args, **kw))
+ positive = False
if name.startswith('verify'):
name = name.replace('verify', 'assert', 1)
- return getattr(self, name)
if name.startswith('assert'):
getter_name = name.replace('assert', 'get', 1)
@@ -301,38 +299,30 @@
if getter is None:
raise AttributeError(requested_name)
if getter.assert_type == 'pattern':
- return lambda pattern: self._assert_pattern(getter, pattern)
+ return lambda pattern: self._assert_pattern(
+ getter, positive, pattern)
elif getter.assert_type == 'locator':
- return lambda locator: self._assert(getter, locator)
+ return lambda locator: self._assert(getter, positive, locator)
elif getter.assert_type == 'locator_pattern':
- return lambda locator, pattern: \
- self._assert_pattern(getter, pattern, locator)
+ return lambda locator, pattern: self._assert_pattern(
+ getter, positive, pattern, locator)
elif getter.assert_type is None:
- return lambda: self._assert(getter)
+ return lambda: self._assert(getter, positive)
raise AttributeError(requested_name)
- def _assert(self, getter, *args, **kw):
- if not getter(*args, **kw):
+ def _assert(self, getter, positive, *args, **kw):
+ if positive ^ bool(getter(*args, **kw)):
raise self.failureException(
- 'not: %s(%r, %r)' % (getter.__name__, args, kw))
+ 'not valid: %s(%r, %r)' % (getter.__name__, args, kw))
- def _assert_pattern(self, getter, pattern, *args):
+ def _assert_pattern(self, getter, positive, pattern, *args):
result = getter(*args)
- if not selenese_pattern_equals(result, pattern):
+ if positive ^ bool(selenese_pattern_equals(result, pattern)):
raise self.failureException(
'%r did not match expected %r'
% (result, pattern))
- def _negate(self, assertion, *args, **kw):
- try:
- assertion(*args, **kw)
- except self.failureException, e:
- return
- else:
- raise self.failureException('not %r with %r' %
- (assertion, (args, kw)))
-
def _waitFor(self, assertion, *args, **kw):
start = time.time()
while True:
More information about the checkins
mailing list