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):