def test_long_stream(self): self.stream_handle = StringIO(CtdpfParserUnitTestCase.LONG_DATA) self.parser = CtdpfParser( self.config, self.position, self.stream_handle, self.pos_callback, self.pub_callback) # last one is the link to the data source result = self.parser.get_records(44) self.assertEqual(result[-1], self.particle_z) self.assertEqual(self.parser._state[StateKey.POSITION], 1728) self.assertEqual(self.position_callback_value[StateKey.POSITION], 1728) self.assertEqual(self.position_callback_value[StateKey.TIMESTAMP], self.base_timestamp + 43) self.assertEqual(self.publish_callback_value[-1], self.particle_z)
def test_get_many(self): self.stream_handle = StringIO(CtdpfParserUnitTestCase.TEST_DATA) self.parser = CtdpfParser( self.config, self.position, self.stream_handle, self.pos_callback, self.pub_callback) # last one is the link to the data source result = self.parser.get_records(2) self.assertEqual(result, [self.particle_a, self.particle_b]) self.assertEqual(self.parser._state[StateKey.POSITION], 174) self.assertEqual(self.position_callback_value[StateKey.POSITION], 174) self.assertEqual(self.position_callback_value[StateKey.TIMESTAMP], self.base_timestamp + 1) self.assertEqual(self.publish_callback_value[0], self.particle_a) self.assertEqual(self.publish_callback_value[1], self.particle_b)
def test_set_state(self): new_state = { StateKey.POSITION: 174, StateKey.TIMESTAMP: self.base_timestamp + 1 } self.stream_handle = StringIO(CtdpfParserUnitTestCase.TEST_DATA) self.parser = CtdpfParser( self.config, self.position, self.stream_handle, self.pos_callback, self.pub_callback) # last one is the link to the data source result = self.parser.get_records(1) self.assert_result(result, 137, self.base_timestamp, self.particle_a) self.parser.set_state(new_state) result = self.parser.get_records(1) self.assert_result(result, 212, self.base_timestamp + 2, self.particle_c) result = self.parser.get_records(1) self.assert_result(result, 249, self.base_timestamp + 3, self.particle_d)