2 new revisions:

Revision: 5e8d282359d1
Author:   Janne Härkönen <[email protected]>
Date:     Thu Nov  3 06:05:03 2011
Log:      _Critical: added nonzero
http://code.google.com/p/robotframework/source/detail?r=5e8d282359d1

Revision: c61dd9b963db
Author:   Janne Härkönen <[email protected]>
Date:     Thu Nov  3 06:05:49 2011
Log: resultmodel: implemented test criticality and test inclusion in combin...
http://code.google.com/p/robotframework/source/detail?r=c61dd9b963db

==============================================================================
Revision: 5e8d282359d1
Author:   Janne Härkönen <[email protected]>
Date:     Thu Nov  3 06:05:03 2011
Log:      _Critical: added nonzero
http://code.google.com/p/robotframework/source/detail?r=5e8d282359d1

Modified:
 /src/robot/common/model.py

=======================================
--- /src/robot/common/model.py  Wed Jul 13 08:01:24 2011
+++ /src/robot/common/model.py  Thu Nov  3 06:05:03 2011
@@ -419,3 +419,6 @@
             if self.is_critical(tag):
                 return True
         return not self.tags
+
+    def __nonzero__(self):
+        return bool(self.tags or self.nons)

==============================================================================
Revision: c61dd9b963db
Author:   Janne Härkönen <[email protected]>
Date:     Thu Nov  3 06:05:49 2011
Log: resultmodel: implemented test criticality and test inclusion in combined tag statistics
http://code.google.com/p/robotframework/source/detail?r=c61dd9b963db

Modified:
 /src/robot/common/statistics.py
 /src/robot/result/builders.py
 /src/robot/result/configurer.py
 /src/robot/result/model.py
 /utest/result/test_configurer.py
 /utest/result/test_resultmodel.py

=======================================
--- /src/robot/common/statistics.py     Wed Oct 26 05:32:37 2011
+++ /src/robot/common/statistics.py     Thu Nov  3 06:05:49 2011
@@ -92,7 +92,7 @@
         self.add_suite(suite)

     def _is_included(self, test):
-        return test.critical
+        return test.critical == 'yes'

     def _subsuite_stats(self, suite):
         return suite.critical_stats
=======================================
--- /src/robot/result/builders.py       Thu Nov  3 05:15:42 2011
+++ /src/robot/result/builders.py       Thu Nov  3 06:05:49 2011
@@ -217,7 +217,7 @@
         return result

     def _set_criticality(self, elem, result):
-        result.critical = elem.get('critical', 'yes')
+        result._critical = elem.get('critical', 'yes')


 class DocElement(_Element):
=======================================
--- /src/robot/result/configurer.py     Wed Nov  2 08:17:49 2011
+++ /src/robot/result/configurer.py     Thu Nov  3 06:05:49 2011
@@ -47,6 +47,7 @@
         suite.set_tags(self.add_tags, self.remove_tags)
         suite.remove_keywords(self.remove_keywords)
         suite.filter_messages(self.log_level)
+        suite.set_criticality(self.critical_tags, self.non_critical_tags)

     def _set_suite_attributes(self, suite):
         if self.name:
@@ -56,4 +57,3 @@
         if self.metadata:
             suite.metadata.update(self.metadata)

-
=======================================
--- /src/robot/result/model.py  Thu Nov  3 05:15:42 2011
+++ /src/robot/result/model.py  Thu Nov  3 06:05:49 2011
@@ -95,6 +95,7 @@
         self.tests = []
         self.starttime = 'N/A'
         self.endtime = 'N/A'
+        self._critical = None

     def _get_name(self):
         return self._name or ' & '.join(s.name for s in self.suites)
@@ -106,10 +107,19 @@
     def status(self):
         return 'PASS' if not self.critical_stats.failed else 'FAIL'

-    #TODO: Remove this asap
+    def set_criticality(self, critical_tags=None, non_critical_tags=None):
+        # TODO: should settings criticality be prevented for sub suites?
+        self._critical = _Critical(critical_tags, non_critical_tags)
+
     @property
     def critical(self):
-        return _Critical()
+        if self._critical:
+            return self._critical
+        if self.parent:
+            return self.parent.critical
+        if self._critical is None:
+            self._critical = _Critical()
+        return self._critical

     @utils.setter
     def metadata(self, metadata):
@@ -215,7 +225,7 @@
 class TestCase(object):

     def __init__(self, name='', doc='', tags=None, status='UNDEFINED',
- critical='yes', timeout='', starttime='N/A', endtime='N/A'):
+                timeout='', starttime='N/A', endtime='N/A'):
         self.parent = None
         self.name = name
         self.doc = doc
@@ -223,10 +233,10 @@
         self.status = status
         self.message = ''
         self.timeout = timeout
-        self.critical = critical
         self.keywords = []
         self.starttime = starttime
         self.endtime = endtime
+        self._critical = 'yes'

     @utils.setter
     def tags(self, tags):
@@ -246,10 +256,21 @@
             return self.parent.longname + '.' + self.name
         return self.name

+    @property
+    def critical(self):
+        set_criticality = self.parent.critical
+        if set_criticality:
+ return 'yes' if set_criticality.are_critical(self.tags) else 'no'
+        return self._critical
+
     @property
     def is_passed(self):
         return self.status == 'PASS'

+    # TODO: Remove, move to where statistics are created.
+    def is_included(self, includes, excludes):
+        return self.tags.match(includes) and not self.tags.match(excludes)
+
     def visit(self, visitor):
         visitor.visit_test(self)

=======================================
--- /utest/result/test_configurer.py    Wed Nov  2 02:18:10 2011
+++ /utest/result/test_configurer.py    Thu Nov  3 06:05:49 2011
@@ -144,10 +144,10 @@

def test_remove_passed_does_now_remove_setup_and_teardown_from_suite_with_noncritical_failure(self):
         suite = TestSuite()
+        suite.set_criticality([], ['non'])
         suite.keywords.create(type='setup').messages.create(message='some')
         suite.keywords.create(type='teardown').keywords.create()
- #FIXME!: Possible bug in test as critical='no' does not work .. and default value is 'yes'
-        suite.tests.create(status='FAIL', critical=False)
+        suite.tests.create(status='FAIL', tags='non')
         assert_equal(suite.status, 'PASS')
         self._remove_passed(suite)
         assert_equal(len(suite.keywords.setup.messages), 1)
=======================================
--- /utest/result/test_resultmodel.py   Wed Nov  2 05:51:41 2011
+++ /utest/result/test_resultmodel.py   Thu Nov  3 06:05:49 2011
@@ -87,11 +87,12 @@

     def _create_suite_with_tests(self):
         suite = TestSuite()
+        suite.set_criticality([], ['nc'])
         suite.tests = [TestCase(status='PASS'),
+                       TestCase(status='PASS', tags='nc'),
                        TestCase(status='PASS'),
-                       TestCase(status='PASS', critical=False),
                        TestCase(status='FAIL'),
-                       TestCase(status='FAIL', critical=False)]
+                       TestCase(status='FAIL', tags='nc')]
         return suite


Reply via email to