Author: janne.t.harkonen
Date: Mon Apr 6 03:25:32 2009
New Revision: 1684
Added:
trunk/atest/robot/output/listener_interface/old_importing_listeners.html
trunk/atest/robot/output/listener_interface/old_listener_methods.html
trunk/atest/testresources/listeners/OldListenAll.py
trunk/atest/testresources/listeners/old_listeners.py
trunk/atest/testresources/listeners/old_module_listener.py
Removed:
trunk/atest/testresources/listeners/newlistener.py
Log:
Restructuring acceptance tests for listeners.
Added:
trunk/atest/robot/output/listener_interface/old_importing_listeners.html
==============================================================================
--- (empty file)
+++
trunk/atest/robot/output/listener_interface/old_importing_listeners.html
Mon Apr 6 03:25:32 2009
@@ -0,0 +1,285 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta name="generator" content="RobotIDE">
+<style type="text/css">
+html {
+ font-family: Arial,Helvetica,sans-serif;
+ background-color: white;
+ color: black;
+}
+p {
+ max-width: 60em;
+}
+table {
+ border-collapse: collapse;
+ empty-cells: show;
+ margin: 1em 0em;
+ border: 0.1em solid black;
+}
+th, td {
+ border-style: solid;
+ border-width: 0.05em 0.1em;
+ border-color: black;
+ padding: 0.1em 0.2em;
+ height: 1.5em;
+}
+th {
+ background-color: rgb(192, 192, 192);
+ color: black;
+ border-width: 0.1em;
+ font-weight: bold;
+ text-align: center;
+ text-transform: capitalize;
+ letter-spacing: 0.1em;
+}
+/* Widths of named columns */
+col.name {
+ width: 10em;
+}
+.action, .value, .arg {
+ width: 15em;
+}
+/* Properties for the name column
+- td:first-child should work in CSS 2.1 avare browsers (tested in Firefox)
+- col.name is against specs but works in IE
+*/
+td:first-child, col.name {
+ background-color: rgb(240, 240, 240);
+ text-transform: capitalize;
+ letter-spacing: 0.1em;
+}
+/* required for IE */
+th {
+ font-style: normal;
+}
+</style>
+<title>Listener Interface</title></head>
+<body>
+<h1>Listener Interface</h1>
+
+<table border="1">
+<colgroup span="99"><col class="name"><col class="value"
span="4"></colgroup>
+<tbody><tr>
+<th>Setting</th>
+<th>Value</th>
+<th>Value</th>
+<th>Value</th>
+<th>Value</th>
+</tr>
+<tr>
+<td>Default Tags</td>
+<td>pybot</td>
+<td>jybot</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td>Force Tags</td>
+<td>regression</td>
+<td></td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td>Suite Setup</td>
+<td>Run Tests</td><td>--listener OldListenAll <br>--listener
+old_listeners.ListenSome <br>--listener old_module_listener<br>--listener
old_listeners.WithArgs:value<br>--listener old_listeners.WithArgs:a1:a2
<br>--listener
${LISTENERS}${/}OldListenAll.py:${TEMPDIR}${/}${ALL_FILE2}<br>--listener
old_listeners.WithArgs<br>--listener old_listeners.WithArgs:1:2:3
<br>--listener JavaListener <br>--listener
JavaListenerWithArgs:Hello:world!<br>--listener
JavaListenerWithArgs<br>--listener JavaListenerWithArgs:b:a:r<br>--listener
+NonExistingListener </td><td>misc${/}pass_and_fail.html</td>
+
+
+<td></td>
+</tr>
+<tr><td>Suite Teardown</td><td>Remove Listener
Files</td><td></td><td></td><td></td></tr><tr>
+<td>Resource</td>
+<td>listener_resource.html</td>
+<td></td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td></td>
+<td></td>
+<td></td>
+<td></td>
+</tr>
+</tbody></table>
+
+<table border="1">
+<colgroup span="99"><col class="name"><col class="value"
span="4"></colgroup>
+<tbody><tr>
+<th>Variable</th>
+<th>Value</th>
+<th>Value</th>
+<th>Value</th>
+<th>Value</th>
+</tr>
+<tr>
+<td></td>
+<td></td>
+<td></td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td></td>
+<td></td>
+<td></td>
+<td></td>
+</tr>
+
+
+
+</tbody></table>
+
+<table border="1">
+<colgroup span="99"><col class="name"><col class="action"><col class="arg"
span="3"></colgroup>
+<tbody><tr>
+<th>Test Case</th>
+<th>Action</th>
+<th>Argument</th>
+<th>Argument</th>
+<th>Argument</th>
+</tr>
+
+<tr>
+<td>Python Class Listener from Module With Same Name</td>
+<td>Listener Import Message Should Be In
Syslog</td><td>OldListenAll</td><td> [ ]</td><td>OldListenAll.py</td>
+
+
+
+</tr>
+<tr><td></td><td></td><td></td><td></td><td></td></tr>
+<tr><td>Python Class Listener From A Module With Different
Name</td><td>Listener Import Message Should Be In
Syslog</td><td>old_listeners.ListenSome</td><td>
[ ]</td><td>old_listeners.py</td></tr><tr>
+<td></td>
+<td></td>
+<td></td>
+<td></td>
+<td></td>
+</tr>
+
+<tr><td>Python Module Listener</td><td>Listener Import Message Should Be
In Syslog</td><td>old_module_listener</td><td> [
]</td><td>old_module_listener.py</td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td>Listener
With Arguments</td><td>Listener Import Message Should Be In
Syslog</td><td>old_listeners.WithArgs</td><td> [ value
]</td><td>old_listeners.py</td></tr><tr><td></td><td>Listener Import
Message Should Be In Syslog</td><td>old_listeners.WithArgs</td><td> [ a1 |
a2 ]</td><td>old_listeners.py</td></tr><tr><td></td><td>Check Listener
File</td><td>${ARGS_FILE}</td><td>I got arguments 'value'
and 'default'</td><td>I got arguments 'a1'
and 'a2'</td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td>Listener
With Path</td><td>${expected args} =</td><td>Set Variable
If</td><td>${TEMPDIR.count(':')}</td><td>${TEMPDIR[0]} |
${TEMPDIR[2:]}${/}${ALL_FILE2}</td></tr><tr><td></td><td>...</td><td>${TEMPDIR}${/}${ALL_FILE2}</td><td></td><td></td></tr><tr><td><br></td><td>Listener
Import Message Should Be In
Syslog</td><td>${LISTENERS}${/}OldListenAll.py</td><td> [ ${expected
args} ]</td><td>OldListenAll.py</td></tr><tr><td></td><td>File Should
Exist</td><td>
${TEMPDIR}${/}${ALL_FILE2}</td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td>Listener
With Wrong Number Of Arguments</td><td>Check Syslog contains</td><td>Taking
listener 'old_listeners.WithArgs' into use failed: TypeError: __init__()
takes at least 2 arguments (1
given)</td><td></td><td></td></tr><tr><td></td><td>Check Syslog
contains</td><td>Taking listener 'old_listeners.WithArgs:1:2:3' into use
failed: TypeError: __init__()
</td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td>Non
Existing Listener</td><td>Check Syslog contains</td><td>Taking
listener 'NonExistingListener' into use failed: Importing
+listener 'NonExistingListener' failed:
ImportError: </td><td></td><td></td></tr><tr>
+<td></td>
+<td></td>
+<td></td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td>Java Listener</td>
+<td>[ Tags ]</td>
+<td>jybot</td>
+<td></td>
+<td></td>
+</tr>
+<tr><td></td><td>Listener Import Message Should Be In
Syslog</td><td>JavaListener<br></td><td> [ ]</td><td></td></tr><tr>
+<td></td>
+<td></td>
+<td></td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td>Java Listener With Arguments</td><td>[ Tags ]</td><td>jybot</td>
+
+
+<td></td>
+<td></td>
+</tr><tr><td></td><td>Listener Import Message Should Be In
Syslog</td><td>JavaListenerWithArgs<br></td><td> [ Hello | world!
]</td><td></td></tr><tr><td></td><td>Check Listener
File</td><td>${JAVA_ARGS_FILE}</td><td>I got arguments 'Hello'
and 'world!'</td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td>Java
Listener With Wrong Number Of Arguments</td><td>[ Tags
]</td><td>jybot</td><td></td><td></td></tr><tr><td></td><td>Check Syslog
contains</td><td>Taking listener 'JavaListenerWithArgs' into use failed:
TypeError: JavaListenerWithArgs(): expected 2 args; got
0</td><td></td><td></td></tr><tr><td></td><td>Check Syslog
contains</td><td>Taking listener 'JavaListenerWithArgs:b:a:r' into use
failed: TypeError: JavaListenerWithArgs(): expected 2 args; got
3</td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</tbody></table>
+
+<table border="1">
+<colgroup span="99"><col class="name"><col class="action"><col class="arg"
span="3"></colgroup>
+<tbody><tr>
+<th>Keyword</th>
+<th>Action</th>
+<th>Argument</th>
+<th>Argument</th>
+<th>Argument</th>
+</tr>
+
+
+
+
+
+
+
+
+<tr>
+<td>Listener Import Message Should Be In Syslog</td>
+<td>[ Arguments ] </td>
+<td>${name}</td>
+<td>${args}</td>
+<td>${source}=<unknown></td>
+</tr><tr><td></td><td>${module_path} = </td><td>Join
Path</td><td>${LISTENERS}</td><td>${source}</td></tr><tr><td><br></td><td>${source}
=</td><td>Set Variable
If</td><td>'${source}' != '<unknown>'</td><td>${module_path}<br></td></tr><tr><td></td><td>...</td><td><unknown></td><td><br></td><td></td></tr><tr><td></td><td>Check
Syslog Contains</td><td>Imported listener '${name}' with arguments ${args}
(source
${source}</td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr>
+
+</tbody></table>
+
+</body></html>
\ No newline at end of file
Added: trunk/atest/robot/output/listener_interface/old_listener_methods.html
==============================================================================
--- (empty file)
+++ trunk/atest/robot/output/listener_interface/old_listener_methods.html
Mon Apr 6 03:25:32 2009
@@ -0,0 +1,642 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta name="generator" content="RobotIDE">
+<style type="text/css">
+html {
+font-family: Arial,Helvetica,sans-serif;
+background-color: white;
+color: black;
+}
+p {
+max-width: 60em;
+}
+table {
+border-collapse: collapse;
+empty-cells: show;
+margin: 1em 0em;
+border: 0.1em solid black;
+}
+th, td {
+border-style: solid;
+border-width: 0.05em 0.1em;
+border-color: black;
+padding: 0.1em 0.2em;
+height: 1.5em;
+}
+th {
+background-color: rgb(192, 192, 192);
+color: black;
+border-width: 0.1em;
+font-weight: bold;
+text-align: center;
+text-transform: capitalize;
+letter-spacing: 0.1em;
+}
+/* Widths of named columns */
+col.name {
+width: 10em;
+}
+.action, .value, .arg {
+width: 15em;
+}
+/* Properties for the name column - td:first-child should work in CSS 2.1
avare browsers (tested in Firefox)
+- col.name is against specs but works in IE
+*/
+td:first-child, col.name {
+background-color: rgb(240, 240, 240);
+text-transform: capitalize;
+letter-spacing: 0.1em;
+}
+/* required for IE */
+th {
+font-style: normal;
+}
+</style><title>Listener Interface</title></head>
+<body>
+<h1>Listener Interface</h1>
+<table border="1">
+<colgroup span="99"><col class="name"><col class="value"
span="4"></colgroup>
+<tbody>
+<tr>
+<th>Setting</th>
+<th>Value</th>
+<th>Value</th>
+<th>Value</th>
+<th>Value</th>
+</tr>
+<tr>
+<td>Default Tags</td>
+<td>pybot</td>
+<td>jybot</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td>Force Tags</td>
+<td>regression</td>
+<td></td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td>Suite Setup</td>
+<td>Run Tests</td>
+<td>--listener OldListenAll<br>--listener
OldListenAll:${TEMPDIR}${/}${ALL_FILE2}<br>--listener
old_module_listener<br>
+--listener
+old_listeners.ListenSome <br>
+--listener JavaListener<br>
+--listener old_listeners.InvalidMethods</td>
+<td>misc${/}pass_and_fail.html</td>
+<td></td>
+</tr>
+<tr><td>Suite Teardown</td><td>Remove Listener
Files</td><td></td><td></td><td></td></tr><tr>
+<td>Resource</td>
+<td>listener_resource.html</td>
+<td></td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td></td>
+<td></td>
+<td></td>
+<td></td>
+</tr>
+</tbody>
+</table>
+<table border="1">
+<colgroup span="99"><col class="name"><col class="value"
span="4"></colgroup>
+<tbody>
+<tr>
+<th>Variable</th>
+<th>Value</th>
+<th>Value</th>
+<th>Value</th>
+<th>Value</th>
+</tr>
+<tr>
+<td></td>
+<td></td>
+<td></td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td></td>
+<td></td>
+<td></td>
+<td></td>
+</tr>
+</tbody>
+</table>
+<table border="1">
+<colgroup span="99"><col class="name"><col class="action"><col class="arg"
span="3"></colgroup>
+<tbody>
+<tr>
+<th>Test Case</th>
+<th>Action</th>
+<th>Argument</th>
+<th>Argument</th>
+<th>Argument</th>
+</tr>
+<tr>
+<td><a name="test_ListenAll">Listen All</a></td>
+<td>[Documentation]</td>
+<td>Listener listening all methods. Method names with
+underscore.</td>
+<td></td>
+<td></td>
+</tr>
+<tr><td></td><td>Check Listen All
File</td><td>${ALL_FILE}</td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td>Listen
All With Arguments to Listener</td><td>Check Listen All
File</td><td>${ALL_FILE2}</td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td>Listen
All Module Listener</td><td>Check Listen All
File</td><td>${MODULE_FILE}</td><td></td><td></td></tr><tr>
+<td></td>
+<td></td>
+<td></td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td><a name="test_ListenSome">Listen Some</a></td>
+<td>[Documentation]</td>
+<td>Only listening some methods. Method names with
+camelCase.</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>@{expected} =</td>
+<td>Create List</td>
+<td>Pass</td>
+<td><br>
+</td>
+</tr>
+<tr>
+<td></td>
+<td>...</td>
+<td>Fail</td>
+<td>${SUITE_MSG}</td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>Check Listener File</td>
+<td>${SOME_FILE}</td>
+<td>@{expected}</td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td></td>
+<td></td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td><a name="test_JavaListener">Java Listener</a></td>
+<td>[Documentation]</td>
+<td>Listener listening all methods implemented with Java</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>[Tags]</td>
+<td>jybot</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>@{expected} =</td>
+<td>Create List</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>...</td>
+<td>START SUITE: Pass And Fail 'Some tests here'</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>...</td>
+<td>START KW: My Keyword [Suite Setup]</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>...</td>
+<td>START KW: BuiltIn.Log [Hello says "\${who}"!\${LEVEL1}]</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>...</td>
+<td>START KW: BuiltIn.Log [Debug message\${LEVEL2}]</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>...</td>
+<td>START TEST: Pass '' [forcepass]</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>...</td>
+<td>START KW: My Keyword [Pass]</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>...</td>
+<td>START KW: BuiltIn.Log [Hello says "\${who}"!\${LEVEL1}]</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>...</td>
+<td>START KW: BuiltIn.Log [Debug message\${LEVEL2}]</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>...</td>
+<td>END TEST: PASS</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>...</td>
+<td>START TEST: Fail 'FAIL Expected failure' [failforce]</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>...</td>
+<td>START KW: My Keyword [Fail]</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>...</td>
+<td>START KW: BuiltIn.Log [Hello says "\${who}"!\${LEVEL1}]</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>...</td>
+<td>START KW: BuiltIn.Log [Debug message\${LEVEL2}]</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>...</td>
+<td>START KW: BuiltIn.Fail [Expected failure]</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>...</td>
+<td>END TEST: FAIL: Expected failure</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>...</td>
+<td>END SUITE: FAIL: 2 critical tests, 1 passed, 1 failed</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>...</td>
+<td>2 tests total, 1 passed, 1 failed</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>...</td>
+<td>Output (java): output.xml</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>...</td>
+<td>The End</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>Check Listener File</td>
+<td>${JAVA_FILE}</td>
+<td>@{expected}</td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td></td>
+<td></td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td><a name="test_InvalidArgsForListenerMethod">Invalid
+Args For Listener Method</a></td>
+<td>Check Stderr Contains</td>
+<td>[ ERROR ]</td>
+<td>Calling 'start_suite' method of listener
+'old_listeners.InvalidMethods' failed:</td>
+<td>TypeError: start_suite() takes</td>
+</tr>
+<tr>
+<td></td>
+<td></td>
+<td></td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td><a name="test_ListenerMethodRaisingException">Listener
+Method Raising Exception</a></td>
+<td>Check Stderr Contains</td>
+<td>[ ERROR ]</td>
+<td>Calling 'end_suite' method of listener
+'old_listeners.InvalidMethods' failed:</td>
+<td>Here comes an exception!</td>
+</tr>
+<tr>
+<td></td>
+<td></td>
+<td></td>
+<td></td>
+<td></td>
+</tr>
+</tbody>
+</table>
+<table border="1">
+<colgroup span="99"><col class="name"><col class="action"><col class="arg"
span="3"></colgroup>
+<tbody>
+<tr>
+<th>Keyword</th>
+<th>Action</th>
+<th>Argument</th>
+<th>Argument</th>
+<th>Argument</th>
+</tr>
+<tr><td>Check Listen All File</td><td>[ Arguments
]</td><td>${filename}</td><td></td><td></td></tr><tr>
+<td></td>
+<td>@{expected} =</td>
+<td>Create List</td>
+<td><br>
+</td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>...</td>
+<td>SUITE START: Pass And Fail 'Some tests here'</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>...</td>
+<td>KW START: My Keyword ['Suite Setup']</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>...</td>
+<td>KW START: BuiltIn.Log ['Hello says "\${who}"!',
+'\${LEVEL1}']</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>...</td>
+<td>KW END: PASS</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>...</td>
+<td>KW START: BuiltIn.Log ['Debug message', '\${LEVEL2}']</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>...</td>
+<td>KW END: PASS</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>...</td>
+<td>KW END: PASS</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>...</td>
+<td>TEST START: Pass '' ['force', 'pass']</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>...</td>
+<td>KW START: My Keyword ['Pass']</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>...</td>
+<td>KW START: BuiltIn.Log ['Hello says "\${who}"!',
+'\${LEVEL1}']</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>...</td>
+<td>KW END: PASS</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>...</td>
+<td>KW START: BuiltIn.Log ['Debug message', '\${LEVEL2}']</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>...</td>
+<td>KW END: PASS</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>...</td>
+<td>KW END: PASS</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>...</td>
+<td>TEST END: PASS</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>...</td>
+<td>TEST START: Fail 'FAIL Expected failure' ['fail',
+'force']</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>...</td>
+<td>KW START: My Keyword ['Fail']</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>...</td>
+<td>KW START: BuiltIn.Log ['Hello says "\${who}"!',
+'\${LEVEL1}']</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>...</td>
+<td>KW END: PASS</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>...</td>
+<td>KW START: BuiltIn.Log ['Debug message', '\${LEVEL2}']</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>...</td>
+<td>KW END: PASS</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>...</td>
+<td>KW END: PASS</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>...</td>
+<td>KW START: BuiltIn.Fail ['Expected failure']</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>...</td>
+<td>KW END: FAIL</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>...</td>
+<td>TEST END: FAIL Expected failure</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>...</td>
+<td>SUITE END: FAIL 2 critical tests, 1 passed, 1 failed</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>...</td>
+<td>2 tests total, 1 passed, 1 failed</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>...</td>
+<td>Output: output.xml</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>...</td>
+<td>Closing...</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>Check Listener File</td>
+<td>${filename}</td>
+<td>@{expected}</td>
+<td></td>
+</tr>
+
+
+<tr>
+<td></td>
+<td></td>
+<td></td>
+<td></td>
+<td></td>
+</tr>
+</tbody>
+</table>
+</body></html>
\ No newline at end of file
Added: trunk/atest/testresources/listeners/OldListenAll.py
==============================================================================
--- (empty file)
+++ trunk/atest/testresources/listeners/OldListenAll.py Mon Apr 6 03:25:32
2009
@@ -0,0 +1,58 @@
+import os
+import tempfile
+
+
+class OldListenAll:
+
+ def __init__(self, *path):
+ if not path:
+ path = os.path.join(tempfile.gettempdir(), 'listen_all.txt')
+ else:
+ path = ':'.join(path)
+ self.outfile = open(path, 'w')
+
+ def start_suite(self, name, doc):
+ self.outfile.write("SUITE START: %s '%s'\n" % (name, doc))
+
+ def start_test(self, name, doc, tags):
+ tags = [ str(tag) for tag in tags ]
+ self.outfile.write("TEST START: %s '%s' %s\n" % (name, doc, tags))
+
+ def start_keyword(self, name, args):
+ args = [ str(arg) for arg in args ]
+ self.outfile.write("KW START: %s %s\n" % (name, args))
+
+ def end_keyword(self, status):
+ self.outfile.write("KW END: %s\n" % (status))
+
+ def end_test(self, status, message):
+ if status == 'PASS':
+ self.outfile.write('TEST END: PASS\n')
+ else:
+ self.outfile.write("TEST END: %s %s\n" % (status, message))
+
+ def end_suite(self, status, message):
+ self.outfile.write('SUITE END: %s %s\n' % (status, message))
+
+ def output_file(self, path):
+ self._out_file('Output', path)
+
+ def summary_file(self, path):
+ self._out_file('Summary', path)
+
+ def report_file(self, path):
+ self._out_file('Report', path)
+
+ def log_file(self, path):
+ self._out_file('Log', path)
+
+ def debug_file(self, path):
+ self._out_file('Debug', path)
+
+ def _out_file(self, name, path):
+ assert os.path.isabs(path)
+ self.outfile.write('%s: %s\n' % (name, os.path.basename(path)))
+
+ def close(self):
+ self.outfile.write('Closing...\n')
+ self.outfile.close()
Added: trunk/atest/testresources/listeners/old_listeners.py
==============================================================================
--- (empty file)
+++ trunk/atest/testresources/listeners/old_listeners.py Mon Apr 6
03:25:32 2009
@@ -0,0 +1,36 @@
+import os
+import tempfile
+
+
+class ListenSome:
+
+ def __init__(self):
+ outpath = os.path.join(tempfile.gettempdir(), 'listen_some.txt')
+ self.outfile = open(outpath, 'w')
+
+ def startTest(self, name, doc, tags):
+ self.outfile.write(name + '\n')
+
+ def endSuite(self, stat, msg):
+ self.outfile.write(msg + '\n')
+
+ def close(self):
+ self.outfile.close()
+
+
+class WithArgs(object):
+
+ def __init__(self, arg1, arg2='default'):
+ outpath =
os.path.join(tempfile.gettempdir(), 'listener_with_args.txt')
+ outfile = open(outpath, 'a')
+ outfile.write("I got arguments '%s' and '%s'\n" % (arg1, arg2))
+ outfile.close()
+
+
+class InvalidMethods:
+
+ def start_suite(self, wrong, number, of, args, here):
+ pass
+
+ def end_suite(self, *args):
+ raise RuntimeError("Here comes an exception!")
Added: trunk/atest/testresources/listeners/old_module_listener.py
==============================================================================
--- (empty file)
+++ trunk/atest/testresources/listeners/old_module_listener.py Mon Apr 6
03:25:32 2009
@@ -0,0 +1,52 @@
+import os
+import tempfile
+
+outpath = os.path.join(tempfile.gettempdir(), 'listen_by_module.txt')
+OUTFILE = open(outpath, 'w')
+
+
+def start_suite(name, doc):
+ OUTFILE.write("SUITE START: %s '%s'\n" % (name, doc))
+
+def start_test(name, doc, tags):
+ tags = [ str(tag) for tag in tags ]
+ OUTFILE.write("TEST START: %s '%s' %s\n" % (name, doc, tags))
+
+def start_keyword(name, args):
+ args = [ str(arg) for arg in args ]
+ OUTFILE.write("KW START: %s %s\n" % (name, args))
+
+def end_keyword(status):
+ OUTFILE.write("KW END: %s\n" % (status))
+
+def end_test(status, message):
+ if status == 'PASS':
+ OUTFILE.write('TEST END: PASS\n')
+ else:
+ OUTFILE.write("TEST END: %s %s\n" % (status, message))
+
+def end_suite(status, message):
+ OUTFILE.write('SUITE END: %s %s\n' % (status, message))
+
+def output_file(path):
+ _out_file('Output', path)
+
+def summary_file(path):
+ _out_file('Summary', path)
+
+def report_file(path):
+ _out_file('Report', path)
+
+def log_file(path):
+ _out_file('Log', path)
+
+def debug_file(path):
+ _out_file('Debug', path)
+
+def _out_file(name, path):
+ assert os.path.isabs(path)
+ OUTFILE.write('%s: %s\n' % (name, os.path.basename(path)))
+
+def close():
+ OUTFILE.write('Closing...\n')
+ OUTFILE.close()