Revision: 4122
Author: janne.t.harkonen
Date: Fri Sep 24 00:42:29 2010
Log: Test for being able to run keywords from listeners
http://code.google.com/p/robotframework/source/detail?r=4122

Modified:
 /trunk/atest/robot/output/listener_interface/listener_methods.txt
 /trunk/atest/testresources/listeners/listeners.py

=======================================
--- /trunk/atest/robot/output/listener_interface/listener_methods.txt Fri Apr 9 10:17:15 2010 +++ /trunk/atest/robot/output/listener_interface/listener_methods.txt Fri Sep 24 00:42:29 2010
@@ -82,6 +82,12 @@
     Run Tests  --listener JavaSuiteAndTestCountListener  misc/suites/sub*
     Stderr Should Be Empty

+Executing Keywords from Listeners
+ Run Tests --listener listeners.KeywordExecutingListener misc/pass_and_fail.html
+    ${tc}=  Get Test Case  Pass
+    Check Log Message  ${tc.kws[0].msgs[0]}  Start Pass
+    Check Log Message  ${tc.kws[2].msgs[0]}  End Pass
+

 *** Keywords ***
 Run Tests With Listeners
=======================================
--- /trunk/atest/testresources/listeners/listeners.py Mon May 24 23:12:26 2010 +++ /trunk/atest/testresources/listeners/listeners.py Fri Sep 24 00:42:29 2010
@@ -1,6 +1,8 @@
 import os
 import tempfile

+from robot.libraries.BuiltIn import BuiltIn
+

 class ListenSome:
     ROBOT_LISTENER_API_VERSION = '2'
@@ -55,3 +57,28 @@
         if not data == self.exp_data[name]:
             raise RuntimeError('Wrong tests or suites in %s, %s != %s' %
                                (name, self.exp_data[name], data))
+
+
+class KeywordExecutingListener(object):
+    ROBOT_LISTENER_API_VERSION = '2'
+
+    def start_suite(self, name, attrs):
+        self._start(name)
+
+    def end_suite(self, name, attrs):
+        self._end(name)
+
+    def start_test(self, name, attrs):
+        self._start(name)
+
+    def end_test(self, name, attrs):
+        self._end(name)
+
+    def _start(self, name):
+        self._run_keyword('Start %s' % name)
+
+    def _end(self, name):
+        self._run_keyword('End %s' % name)
+
+    def _run_keyword(self, arg):
+        BuiltIn().run_keyword('Log', arg)

Reply via email to