Author: jprantan
Date: Thu Jul 2 06:14:29 2009
New Revision: 103
Modified:
trunk/src/mabot/model/model.py
trunk/utest/test_model_tags.py
Log:
Fixed the problem that tags were not added to test in case keywords was
modified. See issue 41 for more details.
Modified: trunk/src/mabot/model/model.py
==============================================================================
--- trunk/src/mabot/model/model.py (original)
+++ trunk/src/mabot/model/model.py Thu Jul 2 06:14:29 2009
@@ -111,6 +111,7 @@
Works also with changes done to Robot Framework 2.0.3.
"""
+ #TODO: Move to robotapi
status = getattr(item, 'status', 'FAIL')
return status == 'PASS' and 'PASS' or 'FAIL'
@@ -434,8 +435,11 @@
def _mark_data_modified(self, executed=True):
AbstractManualModel._mark_data_modified(self)
if executed:
- self.add_tags(SETTINGS["tags_added_to_modified_tests"],
mark_modified=False)
-
+ self._add_tags_added_to_modified_tests(mark_modified=False)
+
+ def _add_tags_added_to_modified_tests(self, mark_modified):
+ self.add_tags(SETTINGS["tags_added_to_modified_tests"],
+ mark_modified=mark_modified)
def _get_items(self):
return self.keywords
@@ -559,6 +563,11 @@
else:
self.visible = False
return self.visible
+
+ def _child_status_updated(self):
+ self._add_tags_added_to_modified_tests(mark_modified=True)
+ AbstractManualTestOrKeyword._child_status_updated(self)
+
class ManualKeyword (AbstractManualTestOrKeyword):
Modified: trunk/utest/test_model_tags.py
==============================================================================
--- trunk/utest/test_model_tags.py (original)
+++ trunk/utest/test_model_tags.py Thu Jul 2 06:14:29 2009
@@ -26,7 +26,7 @@
def setUp(self):
data = normcase(join(dirname(__file__), 'data', 'root_suite'))
self.suite = IO().load_data(data)
- self.test = self.suite.suites[0].tests[0]
+ self.test = self.suite.suites[1].tests[0]
self.orig_settings = deepcopy(model.SETTINGS)
def tearDown(self):
@@ -140,21 +140,42 @@
self.assertFalse(self.test.is_modified)
-class TestMarkDataModified(_TestAddAndRemoveTags):
+class TestTagsAddedToModifiedTests(_TestAddAndRemoveTags):
def setUp(self):
_TestAddAndRemoveTags.setUp(self)
- model.SETTINGS["tags_added_to_modified_tests"] = ['foo', 'tag-1']
+ model.SETTINGS['tags_added_to_modified_tests'] = ['foo', 'tag-1']
self.test.tags = ['bar']
+ self.kw = self.test.keywords[0].keywords[0]
- def
test_if_test_is_executed_tags_added_to_modified_tests_are_added(self):
+ def test_if_test_is_executed_tags_are_added(self):
self.test._mark_data_modified(executed=True)
- self.assertEquals(self.test.tags, ['bar', 'foo', 'tag-1'])
+ self._tags_are_added_to_test()
- def
test_if_test_is_not_executed_tags_added_to_modified_tests_are_not_added(self):
+ def test_if_test_is_not_executed_tags_are_not_added(self):
self.test._mark_data_modified(executed=False)
self.assertEquals(self.test.tags, ['bar'])
+ self.assertTrue(self.test.is_modified)
+
+ def test_if_keyword_message_is_changed_tags_are_added(self):
+ self.kw.set_message('New message')
+ self._tags_are_added_to_test()
+
+ def
test_if_only_keyword_message_and_not_status_is_changed_tags_are_added(self):
+ self.kw.update_status_and_message(message='New message')
+ self._tags_are_added_to_test()
+
+ def test_if_keyword_status_is_changed_tags_are_added(self):
+ self.kw.update_status_and_message(status='PASS')
+ self._tags_are_added_to_test()
+
+ def
test_if_keyword_status_and_message_are_changed_tags_are_added(self):
+ self.kw.update_status_and_message(status='PASS', message='New
message')
+ self._tags_are_added_to_test()
+ def _tags_are_added_to_test(self):
+ self.assertEquals(self.test.tags, ['bar', 'foo', 'tag-1'])
+ self.assertTrue(self.test.is_modified)
if __name__ == "__main__":
unittest.main()