示例#1
0
    def test_unexpected(self):
        """
        Test with an unexpected line, confirm we get an exception
        """
        with self.assertRaises(SampleException):
            with open(os.path.join(RESOURCE_PATH, 'unexpected.wavss.log'), 'r') as file_handle:
                parser = WavssADclParser(file_handle, self.exception_callback, is_telemetered=True)

                n_test = 4  # there are 4 lines in the file, but should get stuck on the 3rd
                particles = parser.get_records(n_test)
    def test_tspfb_telem(self):
        """
        Test a simple case that we can parse a single $TSPFB message
        """
        with open(os.path.join(RESOURCE_PATH, 'tspfb.wavss.log'), 'r') as file_handle:
            parser = WavssADclParser(file_handle, self.exception_callback, is_telemetered=True)
            particles = parser.get_records(1)

            self.assert_particles(particles, "tspfb_telem.yml", RESOURCE_PATH)
            self.assertEqual(self.exception_callback_value, [])
    def test_tspna_with_nans_telem(self):
        """
        Test a simple case that we can parse a single $TSPNA message
        """
        # this file also is missing a newline at the end of the file which tests the case of a missing line terminator
        with open(os.path.join(RESOURCE_PATH, 'tspna_with_nan.wavss.log'), 'r') as file_handle:
            parser = WavssADclParser(file_handle, self.exception_callback, is_telemetered=True)
            particles = parser.get_records(1)

            self.assert_particles(particles, "tspma_telem_nans.yml", RESOURCE_PATH)
            self.assertEqual(self.exception_callback_value, [])
示例#4
0
    def test_tspfb_telem(self):
        """
        Test a simple case that we can parse a single $TSPFB message
        """
        with open(os.path.join(RESOURCE_PATH, 'tspfb.wavss.log'), 'r') as file_handle:
            parser = WavssADclParser(file_handle, self.exception_callback, is_telemetered=True)

            particles = parser.get_records(1)

            self.assert_particles(particles, "tspfb_telem.yml", RESOURCE_PATH)
            self.assertEqual(self.exception_callback_value, [])
示例#5
0
    def test_tspna_with_nans_telem(self):
        """
        Test a simple case that we can parse a single $TSPNA message
        """
        # this file also is missing a newline at the end of the file which tests the case of a missing line terminator
        with open(os.path.join(RESOURCE_PATH, 'tspna_with_nan.wavss.log'), 'r') as file_handle:
            parser = WavssADclParser(file_handle, self.exception_callback, is_telemetered=True)

            particles = parser.get_records(1)

            self.assertEqual(self.exception_callback_value, [])
    def test_tspwa_with_dplog(self):
        """
        Test a file with many tspwas that we ignore dplog marker lines
        """
        with open(os.path.join(RESOURCE_PATH, '20140804.wavss.log'), 'r') as file_handle:
            parser = WavssADclParser(file_handle, self.exception_callback, is_telemetered=True)
            # request more particles than are available
            particles = parser.get_records(26)

            # make sure we only get the available number of particles
            self.assertEqual(len(particles), 23)
            self.assertEqual(self.exception_callback_value, [])
示例#7
0
    def test_unexpected(self):
        """
        Test with an unexpected line, confirm we get an exception
        """
        with open(os.path.join(RESOURCE_PATH, 'unexpected.wavss.log'), 'r') as file_handle:
            parser = WavssADclParser(file_handle, self.exception_callback, is_telemetered=True)

            # there are 4 lines in the file, 3rd, has error, TSPSA record is ignored
            n_test = 4
            particles = parser.get_records(n_test)
            self.assertEqual(len(particles), 2)
            self.assertEqual(len(self.exception_callback_value), 1)
            self.assert_(isinstance(self.exception_callback_value[0], RecoverableSampleException))
示例#8
0
    def test_unexpected(self):
        """
        Test with an unexpected line, confirm we get an exception
        """
        with self.assertRaises(SampleException):
            with open(os.path.join(RESOURCE_PATH, 'unexpected.wavss.log'),
                      'r') as file_handle:
                parser = WavssADclParser(file_handle,
                                         self.exception_callback,
                                         is_telemetered=True)

                n_test = 4  # there are 4 lines in the file, but should get stuck on the 3rd
                particles = parser.get_records(n_test)
示例#9
0
    def test_tspwa_with_dplog(self):
        """
        Test a file with many tspwas that we ignore dplog marker lines
        """
        with open(os.path.join(RESOURCE_PATH, '20140804.wavss.log'), 'r') as file_handle:
            parser = WavssADclParser(file_handle, self.exception_callback, is_telemetered=True)

            # request more particles than are available
            particles = parser.get_records(26)

            # make sure we only get the available number of particles
            self.assertEqual(len(particles), 23)
            self.assertEqual(self.exception_callback_value, [])
    def test_unexpected(self):
        """
        Test with an unexpected line, confirm we get an exception
        """
        with open(os.path.join(RESOURCE_PATH, 'unexpected.wavss.log'), 'r') as file_handle:
            parser = WavssADclParser(file_handle, self.exception_callback, is_telemetered=True)
            # there are 4 lines in the file, 3rd, has error, TSPSA record is ignored
            n_test = 4
            particles = parser.get_records(n_test)

            self.assertEqual(len(particles), 2)
            self.assertEqual(len(self.exception_callback_value), 1)
            self.assert_(isinstance(self.exception_callback_value[0], RecoverableSampleException))
    def test_bad_number_samples(self):
        """
        Test bad number of samples for all data particle types except tspwa (since that size is fixed in the regex)
        """
        with open(os.path.join(RESOURCE_PATH, 'bad_num_samples.wavss.log'), 'r') as file_handle:
            parser = WavssADclParser(file_handle, self.exception_callback, is_telemetered=True)
            n_test = 4  # number of particles to test
            particles = parser.get_records(n_test)

            # make sure none of the particles succeeded
            self.assertEqual(len(particles), 0)
            # check that there were 3 recoverable sample exceptions
            self.assertEqual(len(self.exception_callback_value), n_test)
            for i in range(0, n_test):
                self.assert_(isinstance(self.exception_callback_value[i], RecoverableSampleException))
    def test_simple(self):
        """
        Test a simple telemetered and recovered case with all the particle types
        """
        with open(os.path.join(RESOURCE_PATH, '20140825.wavss.log'), 'r') as file_handle:
            parser = WavssADclParser(file_handle, self.exception_callback, is_telemetered=True)
            particles = parser.get_records(6)

            self.assert_particles(particles, "20140825_telem.yml", RESOURCE_PATH)

        with open(os.path.join(RESOURCE_PATH, '20140825.wavss.log'), 'r') as file_handle:
            parser = WavssADclParser(file_handle, self.exception_callback, is_telemetered=False)
            particles = parser.get_records(6)

            self.assert_particles(particles, "20140825_recov.yml", RESOURCE_PATH)
            self.assertEqual(self.exception_callback_value, [])
    def test_bug_11462(self):
        """
        Test sample files from Redmine ticket #11462
        NaN values were found in other record types causing parser to fail.
        Verify parser parses files without error
        """
        with open(os.path.join(RESOURCE_PATH, '20150730.wavss.log'), 'r') as file_handle:
            parser = WavssADclParser(file_handle, self.exception_callback, is_telemetered=True)
            tspwa_records = 24
            tspna_records = 24
            tspfb_records = 24
            tsp_records = tspfb_records + tspna_records + tspwa_records
            particles = parser.get_records(tsp_records + 10)

            self.assertEqual(len(particles), tsp_records)
            self.assertEqual(self.exception_callback_value, [])
示例#14
0
    def test_bad_number_samples(self):
        """
        Test bad number of samples for all data particle types except tspwa (since that size is fixed in the regex)
        """
        with open(os.path.join(RESOURCE_PATH, 'bad_num_samples.wavss.log'), 'r') as file_handle:
            parser = WavssADclParser(file_handle, self.exception_callback, is_telemetered=True)

            n_test = 4  # number of particles to test
            particles = parser.get_records(n_test)

            # make sure none of the particles succeeded
            self.assertEqual(len(particles), 0)
            # check that there were 3 recoverable sample exceptions
            self.assertEqual(len(self.exception_callback_value), n_test)
            for i in range(0, n_test):
                self.assert_(isinstance(self.exception_callback_value[i], RecoverableSampleException))
    def test_bug_10046(self):
        """
        Test sample files from Redmine ticket #10046
        NaN values were found in other record types causing parser to fail.
        Verify parser parses files without error
        """
        with open(os.path.join(RESOURCE_PATH, '20150314.wavss.log'), 'r') as file_handle:
            parser = WavssADclParser(file_handle, self.exception_callback, is_telemetered=True)
            particles = parser.get_records(200)

            self.assertEqual(len(particles), 120)
            self.assertEqual(self.exception_callback_value, [])

        with open(os.path.join(RESOURCE_PATH, '20150315.wavss.log'), 'r') as file_handle:
            parser = WavssADclParser(file_handle, self.exception_callback, is_telemetered=False)
            particles = parser.get_records(200)

            self.assertEqual(len(particles), 120)
            self.assertEqual(self.exception_callback_value, [])
    def test_bug_11462(self):
        """
        Test sample files from Redmine ticket #11462
        NaN values were found in other record types causing parser to fail.
        Verify parser parses files without error
        """
        with open(os.path.join(RESOURCE_PATH, '20150730.wavss.log'),
                  'r') as file_handle:
            parser = WavssADclParser(file_handle,
                                     self.exception_callback,
                                     is_telemetered=True)
            tspwa_records = 24
            tspna_records = 24
            tspfb_records = 24
            tsp_records = tspfb_records + tspna_records + tspwa_records
            particles = parser.get_records(tsp_records + 10)

            self.assertEqual(len(particles), tsp_records)
            self.assertEqual(self.exception_callback_value, [])
示例#17
0
    def test_simple(self):
        """
        Test a simple telemetered and recovered case with all the particle types
        """
        with open(os.path.join(RESOURCE_PATH, '20140825.wavss.log'),
                  'r') as file_handle:
            parser = WavssADclParser(file_handle,
                                     self.exception_callback,
                                     is_telemetered=True)

            particles = parser.get_records(6)

            self.assert_particles(particles, "20140825_telem.yml",
                                  RESOURCE_PATH)

        with open(os.path.join(RESOURCE_PATH, '20140825.wavss.log'),
                  'r') as file_handle:
            parser = WavssADclParser(file_handle,
                                     self.exception_callback,
                                     is_telemetered=False)

            particles = parser.get_records(6)

            self.assert_particles(particles, "20140825_recov.yml",
                                  RESOURCE_PATH)

        self.assertEqual(self.exception_callback_value, [])
    def test_bug_10046(self):
        """
        Test sample files from Redmine ticket #10046
        NaN values were found in other record types causing parser to fail.
        Verify parser parses files without error
        """
        with open(os.path.join(RESOURCE_PATH, '20150314.wavss.log'),
                  'r') as file_handle:
            parser = WavssADclParser(file_handle,
                                     self.exception_callback,
                                     is_telemetered=True)
            particles = parser.get_records(200)

            self.assertEqual(len(particles), 120)
            self.assertEqual(self.exception_callback_value, [])

        with open(os.path.join(RESOURCE_PATH, '20150315.wavss.log'),
                  'r') as file_handle:
            parser = WavssADclParser(file_handle,
                                     self.exception_callback,
                                     is_telemetered=False)
            particles = parser.get_records(200)

            self.assertEqual(len(particles), 120)
            self.assertEqual(self.exception_callback_value, [])
    def process(self):
        """
        Process a file by opening the file and instantiating a parser and driver
        @return: processed particle data handler object
        """
        log = get_logger()

        with open(self._sourceFilePath, "r") as file_handle:
            def exception_callback(exception):
                log.warn("Exception: %s", exception)
                self._particleDataHdlrObj.setParticleDataCaptureFailure()

            # instantiate the parser
            parser = WavssADclParser(file_handle, exception_callback, True)
            # instantiate the driver
            driver = DataSetDriver(parser, self._particleDataHdlrObj)
            # start the driver processing the file
            driver.processFileStream()

        return self._particleDataHdlrObj