2 new revisions:

Revision: afb8797fd244
Branch:   default
Author:   Pekka Klärck
Date:     Wed May 29 07:18:32 2013
Log:      new run: pass result object, not model object, to namespace
http://code.google.com/p/robotframework/source/detail?r=afb8797fd244

Revision: b964c70205a4
Branch:   default
Author:   Pekka Klärck
Date:     Wed May 29 07:18:36 2013
Log:      Automated merge with https://code.google.com/p/robotframework/
http://code.google.com/p/robotframework/source/detail?r=b964c70205a4

==============================================================================
Revision: afb8797fd244
Branch:   default
Author:   Pekka Klärck
Date:     Wed May 29 07:18:32 2013
Log:      new run: pass result object, not model object, to namespace
http://code.google.com/p/robotframework/source/detail?r=afb8797fd244

Modified:
 /src/robot/libraries/BuiltIn.py
 /src/robot/new_running/runner.py
 /src/robot/running/context.py
 /src/robot/running/namespace.py

=======================================
--- /src/robot/libraries/BuiltIn.py     Wed May 29 06:39:49 2013
+++ /src/robot/libraries/BuiltIn.py     Wed May 29 07:18:32 2013
@@ -12,7 +12,6 @@
 #  See the License for the specific language governing permissions and
 #  limitations under the License.

-import os
 import re
 import time

@@ -1093,7 +1092,7 @@
         if not isinstance(name, basestring):
             raise RuntimeError('Keyword name must be a string.')
         kw = Keyword(name, list(args))
-        return kw.run(self._execution_context)
+        return kw.run(self._context)

     def run_keywords(self, *keywords):
         """Executes all the given keywords in a sequence.
@@ -1134,7 +1133,7 @@
                 self.run_keyword(kw, *args)
             except ExecutionFailed, err:
                 errors.extend(err.get_errors())
-                if not err.can_continue(self._execution_context.teardown):
+                if not err.can_continue(self._context.teardown):
                     break
         if errors:
             raise ExecutionFailures(errors)
@@ -1517,7 +1516,7 @@
         """
         suite = self._get_suite_in_teardown('Run Keyword If '
                                             'All Critical Tests Passed')
-        if suite.critical_stats.failed == 0:
+        if suite.statistics.critical.failed == 0:
             return self.run_keyword(name, *args)

     def run_keyword_if_any_critical_tests_failed(self, name, *args):
@@ -1531,7 +1530,7 @@
         """
         suite = self._get_suite_in_teardown('Run Keyword If '
                                             'Any Critical Tests Failed')
-        if suite.critical_stats.failed > 0:
+        if suite.statistics.critical.failed > 0:
             return self.run_keyword(name, *args)

     def run_keyword_if_all_tests_passed(self, name, *args):
@@ -1544,7 +1543,7 @@
         documentation for more details.
         """
suite = self._get_suite_in_teardown('Run Keyword If All Tests Passed')
-        if suite.all_stats.failed == 0:
+        if suite.statistics.all.failed == 0:
             return self.run_keyword(name, *args)

     def run_keyword_if_any_tests_failed(self, name, *args):
@@ -1557,11 +1556,11 @@
         documentation for more details.
         """
suite = self._get_suite_in_teardown('Run Keyword If Any Tests Failed')
-        if suite.all_stats.failed > 0:
+        if suite.statistics.all.failed > 0:
             return self.run_keyword(name, *args)

     def _get_suite_in_teardown(self, kwname):
-        if self._namespace.suite.status == 'RUNNING':
+        if not self._context.suite_teardown:
raise RuntimeError("Keyword '%s' can only be used in suite teardown"
                                % kwname)
         return self._namespace.suite
@@ -1903,7 +1902,7 @@
         logging).
         """
         try:
-            old = self._execution_context.output.set_log_level(level)
+            old = self._context.output.set_log_level(level)
         except DataError, err:
             raise RuntimeError(unicode(err))
         self._namespace.variables.set_global('${LOG_LEVEL}', level.upper())
@@ -2360,18 +2359,16 @@
                                         utils.seq2str(tags)))

     def _set_or_remove_tags(self, handler, suite=None, test=None):
-
         if not (suite or test):
             ns = self._namespace
             if ns.test is None:
-                if ns.suite.status != 'RUNNING':
+                if self._context.suite_teardown:
raise RuntimeError("'Set Tags' and 'Remove Tags' keywords "
                                        "cannot be used in suite teardown.")
                 self._set_or_remove_tags(handler, suite=ns.suite)
             else:
                 self._set_or_remove_tags(handler, test=ns.test)
                 ns.variables.set_test('@{TEST_TAGS}', ns.test.tags[:])
-            ns.suite._set_critical_tags(ns.suite.critical)
         elif suite:
             for sub in suite.suites:
                 self._set_or_remove_tags(handler, suite=sub)
@@ -2427,12 +2424,12 @@
     ROBOT_LIBRARY_VERSION = get_version()

     @property
-    def _execution_context(self):
+    def _context(self):
         return EXECUTION_CONTEXTS.current

     @property
     def _namespace(self):
-        return self._execution_context.namespace
+        return self._context.namespace

     def _get_namespace(self, top=False):
         ctx = EXECUTION_CONTEXTS.top if top else EXECUTION_CONTEXTS.current
=======================================
--- /src/robot/new_running/runner.py    Wed May 29 06:45:57 2013
+++ /src/robot/new_running/runner.py    Wed May 29 07:18:32 2013
@@ -50,21 +50,21 @@
     def start_suite(self, suite):
         variables = GLOBAL_VARIABLES.copy()
         variables.set_from_variable_table(suite.variables)
-        ns = Namespace(suite,
+        result = TestSuite(name=suite.name,
+                           source=suite.source,
+                           starttime=utils.get_timestamp())
+        ns = Namespace(result,
self._context.namespace.variables if self._context else None,
                        UserLibrary(suite.user_keywords),
-                       variables)
+                       variables,
+                       suite.imports)
EXECUTION_CONTEXTS.start_suite(ns, self._output, self._settings.dry_run) if not (self._suite_status and self._suite_status.failures): # Skips imports if exiting
             ns.handle_imports()
         variables.resolve_delayed()
-        result = TestSuite(name=suite.name,
-                           doc=self._resolve_setting(suite.doc),
-                           metadata=[(self._resolve_setting(n),
-                                      self._resolve_setting(v))
-                                     for n, v in suite.metadata.items()],
-                           source=suite.source,
-                           starttime=utils.get_timestamp())
+        result.doc = self._resolve_setting(suite.doc)
+ result.metadata = [(self._resolve_setting(n), self._resolve_setting(v))
+                           for n, v in suite.metadata.items()]
         if not self.result:
             result.set_criticality(suite.criticality.critical_tags,
                                    suite.criticality.non_critical_tags)
=======================================
--- /src/robot/running/context.py       Tue May 28 11:39:27 2013
+++ /src/robot/running/context.py       Wed May 29 07:18:32 2013
@@ -59,7 +59,7 @@
         self.namespace = namespace
         self.output = output
         self.dry_run = dry_run
-        self._in_suite_teardown = False
+        self.suite_teardown = False
         self._in_keyword_teardown = 0
         self._started_keywords = 0

@@ -68,15 +68,15 @@
     @property
     @contextmanager
     def in_suite_teardown(self):
-        self._in_suite_teardown = True
+        self.suite_teardown = True
         try:
             yield
         finally:
-            self._in_suite_teardown = False
+            self.suite_teardown = False

     @property
     def teardown(self):
-        if self._in_suite_teardown or self._in_keyword_teardown:
+        if self.suite_teardown or self._in_keyword_teardown:
             return True
         test = self.namespace.test
         return test and test.status != 'RUNNING'
=======================================
--- /src/robot/running/namespace.py     Wed May 22 06:46:06 2013
+++ /src/robot/running/namespace.py     Wed May 29 07:18:32 2013
@@ -42,10 +42,18 @@
                              'OperatingSystem': 'DeprecatedOperatingSystem'}
_library_import_by_path_endings = ('.py', '.java', '.class', '/', os.sep)

- def __init__(self, suite, parent_vars, user_keywords=None, variables=None): + def __init__(self, suite, parent_vars, user_keywords=None, variables=None,
+                 imports=None):
         if suite is not None:
LOGGER.info("Initializing namespace for test suite '%s'" % suite.longname)
         self.suite = suite
+        # TODO: REmove Compatibility
+        if imports is not None:
+            self._imports = imports
+        elif suite:
+            self._imports = suite.imports
+        else:
+            self._imports = []
         # TODO: Remove variable and uk compatibility with old/new running
self.variables = self._create_variables(suite, parent_vars, variables) self._user_keywords = user_keywords if user_keywords is not None else suite.user_keywords
@@ -58,7 +66,7 @@

     def handle_imports(self):
         self._import_default_libraries()
-        self._handle_imports(self.suite.imports)
+        self._handle_imports(self._imports)

     def _create_variables(self, suite, parent_vars, suite_variables=None):
         if suite_variables is None:

==============================================================================
Revision: b964c70205a4
Branch:   default
Author:   Pekka Klärck
Date:     Wed May 29 07:18:36 2013
Log:      Automated merge with https://code.google.com/p/robotframework/
http://code.google.com/p/robotframework/source/detail?r=b964c70205a4


--

--- You received this message because you are subscribed to the Google Groups "robotframework-commit" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to