Revision: de1e2dbd4996
Author: Pekka Klärck
Date: Mon Nov 28 06:07:42 2011
Log: 1) Ooops, I had borken __slots__ when adding ModelObject base
class. Fixed now and added also unit tests to check that slots are working
correctly both in robot.model and robot.result. 2) Introduced
robot.result.message.
http://code.google.com/p/robotframework/source/detail?r=de1e2dbd4996
Added:
/src/robot/result/message.py
Modified:
/src/robot/model/message.py
/src/robot/model/modelobject.py
/src/robot/model/testsuite.py
/src/robot/result/__init__.py
/src/robot/result/keyword.py
/utest/model/test_keyword.py
/utest/model/test_message.py
/utest/model/test_testcase.py
/utest/model/test_testsuite.py
/utest/result/test_resultmodel.py
=======================================
--- /dev/null
+++ /src/robot/result/message.py Mon Nov 28 06:07:42 2011
@@ -0,0 +1,19 @@
+# Copyright 2008-2011 Nokia Siemens Networks Oyj
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from robot import model
+
+
+class Message(model.Message):
+ __slots__ = []
=======================================
--- /src/robot/model/message.py Mon Nov 28 05:37:49 2011
+++ /src/robot/model/message.py Mon Nov 28 06:07:42 2011
@@ -16,7 +16,7 @@
class Message(ModelObject):
- __slots__ = ['level', 'html', 'timestamp', 'linkable']
+ __slots__ = ['message', 'level', 'html', 'timestamp', 'linkable']
def __init__(self, message='', level='INFO', html=False,
timestamp=None,
linkable=False):
=======================================
--- /src/robot/model/modelobject.py Wed Nov 9 13:21:18 2011
+++ /src/robot/model/modelobject.py Mon Nov 28 06:07:42 2011
@@ -16,6 +16,7 @@
class ModelObject(object):
+ __slots__ = []
__metaclass__ = SetterAwareType
def __unicode__(self):
=======================================
--- /src/robot/model/testsuite.py Mon Nov 14 09:03:47 2011
+++ /src/robot/model/testsuite.py Mon Nov 28 06:07:42 2011
@@ -25,7 +25,7 @@
class TestSuite(ModelObject):
- __slots__ = ['parent', 'source', '_name', 'doc', '_critical']
+ __slots__ = ['parent', 'source', '_name', 'doc', '_criticality']
test_class = TestCase
keyword_class = Keyword
=======================================
--- /src/robot/result/__init__.py Thu Nov 10 06:42:09 2011
+++ /src/robot/result/__init__.py Mon Nov 28 06:07:42 2011
@@ -15,4 +15,5 @@
from testsuite import TestSuite
from testcase import TestCase
from keyword import Keyword
-
+from message import Message
+
=======================================
--- /src/robot/result/keyword.py Thu Nov 10 06:42:09 2011
+++ /src/robot/result/keyword.py Mon Nov 28 06:07:42 2011
@@ -14,9 +14,12 @@
from robot import model, utils
+from .message import Message
+
class Keyword(model.Keyword):
__slots__ = ['status', 'starttime', 'endtime']
+ message_class = Message
def __init__(self, name='', doc='', args=None, type='kw', timeout='',
status='FAIL', starttime='N/A', endtime='N/A'):
=======================================
--- /utest/model/test_keyword.py Wed Nov 9 12:25:21 2011
+++ /utest/model/test_keyword.py Mon Nov 28 06:07:42 2011
@@ -1,5 +1,5 @@
import unittest
-from robot.utils.asserts import assert_equal, assert_true
+from robot.utils.asserts import assert_equal, assert_true, assert_raises
from robot.model import TestSuite
from robot.model.keyword import Keyword, Keywords
@@ -24,6 +24,9 @@
assert_equal(kw.keywords[1].id, 's1-t1-k1-k2')
assert_equal(kw.keywords[1].keywords[0].id, 's1-t1-k1-k2-k1')
+ def test_slots(self):
+ assert_raises(AttributeError, setattr, Keyword(), 'attr', 'value')
+
class TestStringRepresentation(unittest.TestCase):
=======================================
--- /utest/model/test_message.py Wed Nov 9 12:42:40 2011
+++ /utest/model/test_message.py Mon Nov 28 06:07:42 2011
@@ -1,7 +1,7 @@
import unittest
from robot.model import Message
-from robot.utils.asserts import assert_equal
+from robot.utils.asserts import assert_equal, assert_raises
class TestStringRepresentation(unittest.TestCase):
@@ -25,3 +25,6 @@
assert_equal(repr(self.empty), "''")
assert_equal(repr(self.ascii), "'Kekkonen'")
assert_equal(repr(self.non_ascii), "'hyv? nimi'")
+
+ def test_slots(self):
+ assert_raises(AttributeError, setattr, Message(), 'attr', 'value')
=======================================
--- /utest/model/test_testcase.py Wed Nov 9 12:25:21 2011
+++ /utest/model/test_testcase.py Mon Nov 28 06:07:42 2011
@@ -1,5 +1,5 @@
import unittest
-from robot.utils.asserts import assert_equal
+from robot.utils.asserts import assert_equal, assert_raises
from robot.model import TestCase, TestSuite
@@ -35,6 +35,9 @@
self.test.parent = TestSuite(name='suite').suites.create(name='sub
suite')
assert_equal(self.test.longname, 'suite.sub suite.test')
+ def test_slots(self):
+ assert_raises(AttributeError, setattr, self.test, 'attr', 'value')
+
class TestStringRepresentation(unittest.TestCase):
=======================================
--- /utest/model/test_testsuite.py Mon Nov 14 09:03:47 2011
+++ /utest/model/test_testsuite.py Mon Nov 28 06:07:42 2011
@@ -53,6 +53,9 @@
assert_equal(list(suite.suites), [sub1])
assert_equal(list(sub1.suites), [sub2])
+ def test_slots(self):
+ assert_raises(AttributeError, setattr, self.suite, 'attr', 'value')
+
class TestCriticality(unittest.TestCase):
=======================================
--- /utest/result/test_resultmodel.py Mon Nov 14 09:03:47 2011
+++ /utest/result/test_resultmodel.py Mon Nov 28 06:07:42 2011
@@ -1,7 +1,7 @@
import unittest
-from robot.utils.asserts import assert_equal
-
-from robot.result import TestSuite, TestCase
+from robot.utils.asserts import assert_equal, assert_raises
+
+from robot.result import TestSuite, TestCase, Keyword, Message
class TestSuiteStats(unittest.TestCase):
@@ -93,5 +93,23 @@
assert_equal(suite.elapsedtime, 3610000)
+class TestSlots(unittest.TestCase):
+
+ def test_testsuite(self):
+ self._verify(TestSuite())
+
+ def test_testcase(self):
+ self._verify(TestCase())
+
+ def test_keyword(self):
+ self._verify(Keyword())
+
+ def test_message(self):
+ self._verify(Message())
+
+ def _verify(self, item):
+ assert_raises(AttributeError, setattr, item, 'attr', 'value')
+
+
if __name__ == '__main__':
unittest.main()