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

Reply via email to