Revision: 3659
Author: pekka.klarck
Date: Sat May 29 07:28:57 2010
Log: cleanup
http://code.google.com/p/robotframework/source/detail?r=3659

Modified:
 /trunk/src/robot/running/handlers.py
 /trunk/src/robot/running/timeouts.py

=======================================
--- /trunk/src/robot/running/handlers.py        Fri May 28 16:18:21 2010
+++ /trunk/src/robot/running/handlers.py        Sat May 29 07:28:57 2010
@@ -108,7 +108,7 @@
return self._run_with_output_captured_and_signal_monitor(runner, output)

     def _runner_for(self, handler, output, positional, named, timeout):
-        if timeout and timeout.active():
+        if timeout and timeout.active:
return lambda: timeout.run(handler, args=positional, kwargs=named,
                                        logger=output)
         return lambda: handler(*positional, **named)
=======================================
--- /trunk/src/robot/running/timeouts.py        Sat May 29 07:03:02 2010
+++ /trunk/src/robot/running/timeouts.py        Sat May 29 07:28:57 2010
@@ -21,7 +21,7 @@
 from signalhandler import STOP_SIGNAL_MONITOR


-class _Timeout:
+class _Timeout(object):

     def __init__(self, timeout=None, message='', variables=None):
         self.string = timeout or ''
@@ -32,6 +32,14 @@
         if variables:
             self.replace_variables(variables)

+    @property
+    def type(self):
+        return type(self).__name__.replace('Timeout', ' timeout')
+
+    @property
+    def active(self):
+        return self.secs > 0
+
     def replace_variables(self, variables):
         try:
             self.string = variables.replace_string(self.string)
@@ -42,7 +50,7 @@
             self.message = variables.replace_string(self.message)
         except DataError, err:
             self.secs = 0.000001 # to make timeout active
- self.error = 'Setting %s timeout failed: %s' % (self.type, unicode(err)) + self.error = 'Setting %s failed: %s' % (self.type.lower(), unicode(err))

     def start(self):
         self.starttime = time.time()
@@ -51,36 +59,28 @@
         if self.starttime == 0:
             raise FrameworkError('Timeout not started')
         elapsed = time.time() - self.starttime
-        return self.secs - elapsed
-
-    def active(self):
-        return self.secs > 0
+        return round(self.secs - elapsed, 3)

     def timed_out(self):
-        return self.active() and self.time_left() < 0
+        return self.active and self.time_left() < 0

     def __str__(self):
         return self.string

     def __cmp__(self, other):
-        if not self.active() and not other.active():
-            return 0
-        if not self.active():
-            return 1
-        if not other.active():
-            return -1
-        return cmp(self.time_left(), other.time_left())
+        return cmp(not self.active, not other.active) \
+            or cmp(self.time_left(), other.time_left())

     def run(self, runnable, args=None, kwargs=None, logger=None):
         if self.error:
             raise DataError(self.error)
-        if not self.active():
+        if not self.active:
             raise FrameworkError('Timeout is not active')
         timeout = self.time_left()
         STOP_SIGNAL_MONITOR.stop_running_keyword()
         if logger:
-            logger.debug('%s timeout %s active. %s seconds left.'
- % (self.type.capitalize(), self.string, round(timeout, 3)))
+            logger.debug('%s %s active. %s seconds left.'
+                         % (self.type, self.string, timeout))
         STOP_SIGNAL_MONITOR.start_running_keyword()
         if timeout <= 0:
             raise TimeoutError(self.get_message())
@@ -93,20 +93,18 @@
     def get_message(self):
         if self.message:
             return self.message
- return '%s timeout %s exceeded.' % (self.type.capitalize(), self.string)
+        return '%s %s exceeded.' % (self.type, self.string)


 class TestTimeout(_Timeout):
-    type = 'test'
-    _kw_timeout_occurred = False
+    _keyword_timeouted = False

     def set_keyword_timeout(self, timeout_occurred):
-        if not self._kw_timeout_occurred:
-            self._kw_timeout_occurred = timeout_occurred
+ self._keyword_timeouted = self._keyword_timeouted or timeout_occurred

     def any_timeout_occurred(self):
-        return self.timed_out() or self._kw_timeout_occurred
+        return self.timed_out() or self._keyword_timeouted


 class KeywordTimeout(_Timeout):
-    type = 'keyword'
+    pass

Reply via email to