3 new revisions:

Revision: f14d5f39f6ce
Author:   Pekka Klärck
Date:     Wed Nov  9 04:13:59 2011
Log: ItemList: use lists as the internal storage instead of tuples. latter ...
http://code.google.com/p/robotframework/source/detail?r=f14d5f39f6ce

Revision: 1137053a0fe7
Author:   Pekka Klärck
Date:     Wed Nov  9 05:17:22 2011
Log: Result model: Added TestCase.id and Keyword.id properties. Also added ...
http://code.google.com/p/robotframework/source/detail?r=1137053a0fe7

Revision: 303fe59d37c7
Author:   Pekka Klärck
Date:     Wed Nov  9 05:17:29 2011
Log:      Automated merge with https://code.google.com/p/robotframework/
http://code.google.com/p/robotframework/source/detail?r=303fe59d37c7

==============================================================================
Revision: f14d5f39f6ce
Author:   Pekka Klärck
Date:     Wed Nov  9 04:13:59 2011
Log: ItemList: use lists as the internal storage instead of tuples. latter take a litte less memory but growing them is lot slower.
http://code.google.com/p/robotframework/source/detail?r=f14d5f39f6ce

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

=======================================
--- /src/robot/result/model.py  Wed Nov  9 01:30:24 2011
+++ /src/robot/result/model.py  Wed Nov  9 04:13:59 2011
@@ -358,7 +358,7 @@
# parent. Need to investigate why **common_attrs took so much memory.
         self._item_class = item_class
         self._parent = parent
-        self._items = ()  # Tuples take less memory than lists
+        self._items = []
         if items:
             self.extend(items)

@@ -368,7 +368,7 @@

     def append(self, item):
         self._check_type_and_set_attrs(item)
-        self._items += (item,)
+        self._items.append(item)

     def _check_type_and_set_attrs(self, item):
         if not isinstance(item, self._item_class):
@@ -380,7 +380,7 @@
     def extend(self, items):
         for item in items:
             self._check_type_and_set_attrs(item)
-        self._items += tuple(items)
+        self._items.extend(items)

     def visit(self, visitor):
         for item in self:

==============================================================================
Revision: 1137053a0fe7
Author:   Pekka Klärck
Date:     Wed Nov  9 05:17:22 2011
Log: Result model: Added TestCase.id and Keyword.id properties. Also added ItemList.index to ease calculating these properties.
http://code.google.com/p/robotframework/source/detail?r=1137053a0fe7

Modified:
 /src/robot/result/model.py
 /utest/result/test_resultmodel.py

=======================================
--- /src/robot/result/model.py  Wed Nov  9 04:13:59 2011
+++ /src/robot/result/model.py  Wed Nov  9 05:17:22 2011
@@ -169,7 +169,7 @@
     def id(self):
         if not self.parent:
             return 's1'
- return self.parent.id + '-s%d' % (list(self.parent.suites).index(self)+1) + return '%s-s%d' % (self.parent.id, self.parent.suites.index(self)+1)

     @property
     def critical_stats(self):
@@ -251,6 +251,12 @@
     def keywords(self, keywords):
         return Keywords(keywords, parent=self)

+    @property
+    def id(self):
+        if not self.parent:
+            return 't1'
+        return '%s-t%d' % (self.parent.id, self.parent.tests.index(self)+1)
+
     @property
     def elapsedtime(self):
         return utils.get_elapsed_time(self.starttime, self.endtime)
@@ -314,6 +320,12 @@
     def messages(self, messages):
         return ItemList(Message, messages)

+    @property
+    def id(self):
+        if not self.parent:
+            return 'k1'
+ return '%s-k%d' % (self.parent.id, self.parent.keywords.index(self)+1)
+
     @property
     def elapsedtime(self):
         return utils.get_elapsed_time(self.starttime, self.endtime)
@@ -382,6 +394,9 @@
             self._check_type_and_set_attrs(item)
         self._items.extend(items)

+    def index(self, item):
+        return self._items.index(item)
+
     def visit(self, visitor):
         for item in self:
             item.visit(visitor)
@@ -405,7 +420,6 @@


 class Keywords(ItemList):
-
     __slots__ = []

     def __init__(self, items=None, parent=None):
=======================================
--- /utest/result/test_resultmodel.py   Sun Nov  6 09:54:51 2011
+++ /utest/result/test_resultmodel.py   Wed Nov  9 05:17:22 2011
@@ -146,6 +146,17 @@
     def setUp(self):
         self.test = TestCase(tags=['t1', 't2'], name='test')

+    def test_id_without_parent(self):
+        assert_equal(self.test.id, 't1')
+
+    def test_id_with_parent(self):
+        suite = TestSuite()
+        suite.suites.create().tests = [TestCase(), TestCase()]
+        suite.suites.create().tests = [TestCase()]
+        assert_equal(suite.suites[0].tests[0].id, 's1-s1-t1')
+        assert_equal(suite.suites[0].tests[1].id, 's1-s1-t2')
+        assert_equal(suite.suites[1].tests[0].id, 's1-s2-t1')
+
     def test_modify_tags(self):
         self.test.tags.add(['t0', 't3'])
         self.test.tags.remove('T2')
@@ -181,6 +192,26 @@
         assert_equal(suite.elapsedtime, 3610000)


+class TestKeyword(unittest.TestCase):
+
+    def test_id_without_parent(self):
+        assert_equal(Keyword().id, 'k1')
+
+    def test_id_with_suite_parent(self):
+        assert_equal(TestSuite().keywords.create().id, 's1-k1')
+
+    def test_id_with_test_parent(self):
+ assert_equal(TestSuite().tests.create().keywords.create().id, 's1-t1-k1')
+
+    def test_id_with_keyword_parents(self):
+        kw = TestSuite().tests.create().keywords.create()
+        kw.keywords = [Keyword(), Keyword()]
+        kw.keywords[-1].keywords.create()
+        assert_equal(kw.keywords[0].id, 's1-t1-k1-k1')
+        assert_equal(kw.keywords[1].id, 's1-t1-k1-k2')
+        assert_equal(kw.keywords[1].keywords[0].id, 's1-t1-k1-k2-k1')
+
+
 class TestItemLists(unittest.TestCase):

     def test_create_items(self):

==============================================================================
Revision: 303fe59d37c7
Author:   Pekka Klärck
Date:     Wed Nov  9 05:17:29 2011
Log:      Automated merge with https://code.google.com/p/robotframework/
http://code.google.com/p/robotframework/source/detail?r=303fe59d37c7

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

=======================================
--- /src/robot/result/model.py  Wed Nov  9 03:03:39 2011
+++ /src/robot/result/model.py  Wed Nov  9 05:17:29 2011
@@ -169,7 +169,7 @@
     def id(self):
         if not self.parent:
             return 's1'
- return self.parent.id + '-s%d' % (list(self.parent.suites).index(self)+1) + return '%s-s%d' % (self.parent.id, self.parent.suites.index(self)+1)

     @property
     def critical_stats(self):
@@ -251,6 +251,12 @@
     def keywords(self, keywords):
         return Keywords(keywords, parent=self)

+    @property
+    def id(self):
+        if not self.parent:
+            return 't1'
+        return '%s-t%d' % (self.parent.id, self.parent.tests.index(self)+1)
+
     @property
     def elapsedtime(self):
         return utils.get_elapsed_time(self.starttime, self.endtime)
@@ -314,6 +320,12 @@
     def messages(self, messages):
         return ItemList(Message, messages)

+    @property
+    def id(self):
+        if not self.parent:
+            return 'k1'
+ return '%s-k%d' % (self.parent.id, self.parent.keywords.index(self)+1)
+
     @property
     def elapsedtime(self):
         return utils.get_elapsed_time(self.starttime, self.endtime)
@@ -358,7 +370,7 @@
# parent. Need to investigate why **common_attrs took so much memory.
         self._item_class = item_class
         self._parent = parent
-        self._items = ()  # Tuples take less memory than lists
+        self._items = []
         if items:
             self.extend(items)

@@ -368,7 +380,7 @@

     def append(self, item):
         self._check_type_and_set_attrs(item)
-        self._items += (item,)
+        self._items.append(item)

     def _check_type_and_set_attrs(self, item):
         if not isinstance(item, self._item_class):
@@ -380,7 +392,10 @@
     def extend(self, items):
         for item in items:
             self._check_type_and_set_attrs(item)
-        self._items += tuple(items)
+        self._items.extend(items)
+
+    def index(self, item):
+        return self._items.index(item)

     def visit(self, visitor):
         for item in self:
@@ -405,7 +420,6 @@


 class Keywords(ItemList):
-
     __slots__ = []

     def __init__(self, items=None, parent=None):

Reply via email to