Revision: 7413ff0fffa9
Author:   Pekka Klärck
Date:     Thu Dec  1 11:23:43 2011
Log: XML processing: 1) Allow configuring TestSuite and ExecErrors used by ExecutionResult. 2) Use the new functionality in atests instead of monkeypatching.
http://code.google.com/p/robotframework/source/detail?r=7413ff0fffa9

Modified:
 /atest/resources/TestCheckerLibrary.py
 /src/robot/result/builders.py
 /src/robot/result/executionerrors.py
 /src/robot/result/executionresult.py

=======================================
--- /atest/resources/TestCheckerLibrary.py      Mon Nov 28 07:13:16 2011
+++ /atest/resources/TestCheckerLibrary.py      Thu Dec  1 11:23:43 2011
@@ -2,13 +2,11 @@
 import re

 from robot import utils
-from robot.result.builders import ResultFromXML
-from robot.result import TestSuite, TestCase, Keyword, executionresult
-
+from robot.result.builders import ExecutionResultBuilder, ExecutionResult
+from robot.result import TestSuite, TestCase, Keyword
 from robot.libraries.BuiltIn import BuiltIn

-# Override __slots__ so that process_keyword|test|suite() works
-# TODO: Could we make it easier to use custom TestSuite?
+
 class NoSlotsKeyword(Keyword):
     pass

@@ -19,8 +17,6 @@
     test_class = NoSlotsTestCase
     keyword_class = NoSlotsKeyword

-executionresult.TestSuite = NoSlotsTestSuite
-

 class TestCheckerLibrary:

@@ -28,7 +24,8 @@
         path = path.replace('/', os.sep)
         try:
             print "Processing output '%s'" % path
-            result = ResultFromXML(path)
+            result = ExecutionResult(NoSlotsTestSuite())
+            ExecutionResultBuilder(path).build(result)
         except:
             raise RuntimeError('Processing output failed: %s'
                                % utils.get_error_message())
=======================================
--- /src/robot/result/builders.py       Thu Dec  1 06:51:07 2011
+++ /src/robot/result/builders.py       Thu Dec  1 11:23:43 2011
@@ -37,7 +37,8 @@
 class ExecutionResultBuilder(object):

     def __init__(self, source):
-        self._source = source
+        self._source = source \
+            if isinstance(source, XmlSource) else XmlSource(source)

     def build(self, result):
         elements = ElementStack(RootElement())
=======================================
--- /src/robot/result/executionerrors.py        Mon Nov 14 03:45:51 2011
+++ /src/robot/result/executionerrors.py        Thu Dec  1 11:23:43 2011
@@ -13,13 +13,15 @@
 #  limitations under the License.

 from robot.model.itemlist import ItemList
-from robot.model import Message
+
+from .message import Message


 class ExecutionErrors(object):
+    message_class = Message

     def __init__(self):
-        self.messages = ItemList(Message)
+        self.messages = ItemList(self.message_class)

     def add(self, other):
         self.messages.extend(other.messages)
=======================================
--- /src/robot/result/executionresult.py        Thu Dec  1 06:29:53 2011
+++ /src/robot/result/executionresult.py        Thu Dec  1 11:23:43 2011
@@ -21,9 +21,9 @@

 class ExecutionResult(object):

-    def __init__(self):
-        self.suite = TestSuite()
-        self.errors = ExecutionErrors()
+    def __init__(self, root_suite=None, errors=None):
+        self.suite = root_suite or TestSuite()
+        self.errors = errors or ExecutionErrors()
         self.generator = None
         self._status_rc = True
         self._stat_config = {}

Reply via email to