|
@@ -206,6 +206,54 @@ class TestSegmentInfo(unittest.TestCase):
|
|
|
self.assertRaises(SegmentInfoError, self.__sgmt_info.sync_reader, (0))
|
|
|
self.assertEqual(self.__sgmt_info.get_state(), SegmentInfo.COPYING)
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ self.__si_to_synchronizing_state()
|
|
|
+ self.assertSetEqual(self.__sgmt_info.get_old_readers(), {3})
|
|
|
+ self.assertSetEqual(self.__sgmt_info.get_readers(), set())
|
|
|
+ self.assertRaises(SegmentInfoError, self.__sgmt_info.sync_reader, (1))
|
|
|
+ self.assertEqual(self.__sgmt_info.get_state(), SegmentInfo.SYNCHRONIZING)
|
|
|
+
|
|
|
+
|
|
|
+ self.__si_to_synchronizing_state()
|
|
|
+ self.__sgmt_info.add_reader(3)
|
|
|
+ self.assertSetEqual(self.__sgmt_info.get_old_readers(), {3})
|
|
|
+ self.assertSetEqual(self.__sgmt_info.get_readers(), {3})
|
|
|
+ self.assertRaises(SegmentInfoError, self.__sgmt_info.sync_reader, (3))
|
|
|
+ self.assertEqual(self.__sgmt_info.get_state(), SegmentInfo.SYNCHRONIZING)
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ self.__si_to_synchronizing_state()
|
|
|
+ self.assertSetEqual(self.__sgmt_info.get_old_readers(), {3})
|
|
|
+ self.assertSetEqual(self.__sgmt_info.get_readers(), set())
|
|
|
+ self.assertListEqual(self.__sgmt_info.get_events(), [(42,)])
|
|
|
+ e = self.__sgmt_info.sync_reader(3)
|
|
|
+ self.assertTupleEqual(e, (42,))
|
|
|
+
|
|
|
+ self.assertSetEqual(self.__sgmt_info.get_old_readers(), set())
|
|
|
+ self.assertSetEqual(self.__sgmt_info.get_readers(), {3})
|
|
|
+ self.assertEqual(self.__sgmt_info.get_state(), SegmentInfo.COPYING)
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ self.__si_to_updating_state()
|
|
|
+ self.__sgmt_info.add_reader(4)
|
|
|
+ self.__sgmt_info.complete_update()
|
|
|
+ self.assertEqual(self.__sgmt_info.get_state(), SegmentInfo.SYNCHRONIZING)
|
|
|
+ self.assertSetEqual(self.__sgmt_info.get_old_readers(), {3, 4})
|
|
|
+ self.assertSetEqual(self.__sgmt_info.get_readers(), set())
|
|
|
+ self.assertListEqual(self.__sgmt_info.get_events(), [(42,)])
|
|
|
+ e = self.__sgmt_info.sync_reader(3)
|
|
|
+ self.assertIsNone(e)
|
|
|
+
|
|
|
+ self.assertSetEqual(self.__sgmt_info.get_old_readers(), {4})
|
|
|
+ self.assertSetEqual(self.__sgmt_info.get_readers(), {3})
|
|
|
+
|
|
|
+ self.assertEqual(self.__sgmt_info.get_state(), SegmentInfo.SYNCHRONIZING)
|
|
|
+
|
|
|
def test_remove_reader(self):
|
|
|
|
|
|
self.__si_to_ready_state()
|