Browse Source

[2856] Add add_reader() tests

Mukund Sivaraman 12 years ago
parent
commit
59c4a138d1

+ 1 - 1
src/lib/python/isc/memmgr/datasrc_info.py

@@ -134,7 +134,7 @@ class SegmentInfo:
     def add_reader(self, reader_session_id):
         if reader_session_id in self.__readers:
             raise SegmentInfoError('Reader session ID is already in readers set: ' +
-                                   reader_session_id)
+                                   str(reader_session_id))
 
         self.__readers.add(reader_session_id)
 

+ 16 - 0
src/lib/python/isc/memmgr/tests/datasrc_info_tests.py

@@ -97,6 +97,22 @@ class TestSegmentInfo(unittest.TestCase):
         self.__sgmt_info.add_event(None)
         self.assertNotEqual(len(self.__sgmt_info.get_events()), 0)
 
+    def test_add_reader(self):
+        self.assertSetEqual(self.__sgmt_info.get_readers(), set())
+        self.__sgmt_info.add_reader(1)
+        self.assertSetEqual(self.__sgmt_info.get_readers(), {1})
+        self.__sgmt_info.add_reader(3)
+        self.assertSetEqual(self.__sgmt_info.get_readers(), {1, 3})
+        # ordering doesn't matter in sets
+        self.__sgmt_info.add_reader(2)
+        self.assertSetEqual(self.__sgmt_info.get_readers(), {1, 2, 3})
+        self.assertSetEqual(self.__sgmt_info.get_readers(), {1, 3, 2})
+
+        # adding the same existing reader must throw
+        self.assertRaises(SegmentInfoError, self.__sgmt_info.add_reader, (1))
+        # but the existing readers must be untouched
+        self.assertSetEqual(self.__sgmt_info.get_readers(), {1, 3, 2})
+
     def test_complete_update(self):
         # in READY state
         self.__si_to_ready_state()