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 = {}