Author: janne.t.harkonen
Date: Wed Mar 25 05:59:30 2009
New Revision: 1534

Modified:
   trunk/src/robot/output/readers.py
   trunk/src/robot/output/xmllogger.py
   trunk/src/robot/parsing/model.py
   trunk/src/robot/running/model.py
   trunk/src/robot/serializing/serializer.py

Log:
Implementation for creating links to suite source in Log.

Modified: trunk/src/robot/output/readers.py
==============================================================================
--- trunk/src/robot/output/readers.py   (original)
+++ trunk/src/robot/output/readers.py   Wed Mar 25 05:59:30 2009
@@ -110,6 +110,7 @@

     def __init__(self, node):
         _TestAndSuiteReader.__init__(self, node)
+        self.source = node.attrs.get('source', None)
         del(self.keywords)
         for metanode in node.get_nodes('metadata/item'):
             self.metadata[metanode.get_attr('name')] = metanode.text

Modified: trunk/src/robot/output/xmllogger.py
==============================================================================
--- trunk/src/robot/output/xmllogger.py (original)
+++ trunk/src/robot/output/xmllogger.py Wed Mar 25 05:59:30 2009
@@ -90,6 +90,8 @@
     def _start_suite(self, suite, extra_attrs=None):
         attrs = extra_attrs is not None and extra_attrs or {}
         attrs['name'] = suite.name
+        if suite.source:
+            attrs['source'] = suite.source
         self._writer.start_element('suite', attrs)
         self._writer.whole_element('doc', suite.doc)
         self._writer.start_element('metadata')

Modified: trunk/src/robot/parsing/model.py
==============================================================================
--- trunk/src/robot/parsing/model.py    (original)
+++ trunk/src/robot/parsing/model.py    Wed Mar 25 05:59:30 2009
@@ -103,8 +103,8 @@
if self._is_in_incl_suites(os.path.basename(os.path.normpath(path)),
                                    suitenames):
             suitenames = []
-        subitems, initfile = self._get_suite_items(path, suitenames)
-        rawdata = self._get_rawdata(path, initfile)
+        subitems, self.initfile = self._get_suite_items(path, suitenames)
+        rawdata = self._get_rawdata(path)
         _BaseSuite.__init__(self, rawdata)
         self._process_subsuites(subitems, suitenames)
         if self.get_test_count() == 0 and len(suitenames) == 0:
@@ -133,16 +133,16 @@
                 files.append(path)
         return files, initfile

-    def _get_rawdata(self, path, initfile):
-        if initfile is None:
+    def _get_rawdata(self, path):
+        if self.initfile is None:
             SYSLOG.info("No test suite directory init file")
             return RawData(path)
- SYSLOG.info("Parsing test suite directory init file '%s'" % initfile)
-        rawdata = RawData(initfile)
+ SYSLOG.info("Parsing test suite directory init file '%s'" % self.initfile)
+        rawdata = RawData(self.initfile)
         if rawdata.get_type() in [rawdata.INITFILE, rawdata.EMPTY]:
             return rawdata
         SYSLOG.error("Test suite directory initialization file '%s' "
-                     "contains test cases and is ignored." % initfile)
+                     "contains test cases and is ignored." % self.initfile)
         return RawData(path)

     def _process_subsuites(self, paths, suitenames):

Modified: trunk/src/robot/running/model.py
==============================================================================
--- trunk/src/robot/running/model.py    (original)
+++ trunk/src/robot/running/model.py    Wed Mar 25 05:59:30 2009
@@ -39,6 +39,7 @@
         BaseTestSuite.__init__(self, suitedata.name, suitedata.source)
         self.variables = GLOBAL_VARIABLES.copy()
         self.variables.set_from_variable_table(suitedata.variables)
+        self.source = suitedata.source
         self.doc = suitedata.doc or ''
         self.metadata = suitedata.metadata
         self.imports = suitedata.imports

Modified: trunk/src/robot/serializing/serializer.py
==============================================================================
--- trunk/src/robot/serializing/serializer.py   (original)
+++ trunk/src/robot/serializing/serializer.py   Wed Mar 25 05:59:30 2009
@@ -365,6 +365,12 @@
         self._start_suite_or_test_metadata(suite)
         for name, value in suite.get_metadata(html=True):
self._write_metadata_row(name, value, escape=False, write_empty=True)
+        if suite.source:
+            if os.path.exists(suite.source):
+                path = '<a href="%s">%s</a>' % (suite.source, suite.source)
+            else:
+                path = suite.source
+            self._write_metadata_row('Source', path, escape=False)
         self._write_times(suite)
         self._write_metadata_row('Overall Status', suite.status,
                                  {'class': suite.status.lower()})

Reply via email to