def test_set_state(self): """ Test changing to a new state after initializing the parser and reading data, as if new data has been found and the state has changed """ file_path = os.path.join(RESOURCE_PATH, '11079364_PPB_PARS.txt') stream_handle = open(file_path, 'r') # 11079364_PPB_PARS_recov.yml has the metadata and the first 19 # instrument particles in it expected_results = self.get_dict_from_yml( '11079364_PPB_PARS_recov.yml') parser = ParadJCsppParser( self.config.get(DataTypeKey.PARAD_J_CSPP_RECOVERED), None, stream_handle, self.state_callback, self.pub_callback, self.exception_callback) particles = parser.get_records(2) log.debug("Num particles: %s", len(particles)) self.assertTrue(len(particles) == 2) for i in range(len(particles)): self.assert_result(expected_results['data'][i], particles[i]) # position 1067 is the byte at the start of the 18th data record new_state = { StateKey.POSITION: 1067, StateKey.METADATA_EXTRACTED: True } parser.set_state(new_state) particles = parser.get_records(2) self.assertTrue(len(particles) == 2) # offset in the expected results, into the 18th result offset = 18 for i in range(len(particles)): self.assert_result(expected_results['data'][i + offset], particles[i]) stream_handle.close()
def test_set_state(self): """ Test changing to a new state after initializing the parser and reading data, as if new data has been found and the state has changed """ file_path = os.path.join(RESOURCE_PATH, '11079364_PPB_PARS.txt') stream_handle = open(file_path, 'r') # 11079364_PPB_PARS_recov.yml has the metadata and the first 19 # instrument particles in it expected_results = self.get_dict_from_yml('11079364_PPB_PARS_recov.yml') parser = ParadJCsppParser(self.config.get(DataTypeKey.PARAD_J_CSPP_RECOVERED), None, stream_handle, self.state_callback, self.pub_callback, self.exception_callback) particles = parser.get_records(2) log.debug("Num particles: %s", len(particles)) self.assertTrue(len(particles) == 2) for i in range(len(particles)): self.assert_result(expected_results['data'][i], particles[i]) # position 1067 is the byte at the start of the 18th data record new_state = {StateKey.POSITION: 1067, StateKey.METADATA_EXTRACTED: True} parser.set_state(new_state) particles = parser.get_records(2) self.assertTrue(len(particles) == 2) # offset in the expected results, into the 18th result offset = 18 for i in range(len(particles)): self.assert_result(expected_results['data'][i + offset], particles[i]) stream_handle.close()