def test_data_quality_ignore_flag(self, mock_logs, is_data_good, get_data_method): timeseries, _ = load_test_strain_data() is_data_good.return_value = False get_data_method.return_value = timeseries args_list = [ "tests/test_basic_ini.ini", "--detectors", "[H1, L1]", "--channel-dict", "{'H1': 'GDS-CALIB_STRAIN', 'L1': 'GDS-CALIB_STRAIN'}", "--duration", " 1", "--prior_file", "tests/example_prior.prior", "--waveform-approximant", "IMRPhenomPv2", "--idx", "0", "--trigger_time", "1126259462.4", "--label", "QUALITY_TEST", ] # make sure that when the flag is present, no error args, unknown = parse_args(args_list, create_generation_parser()) args.trigger_time = 1126259462.4 input = DataGenerationInput(args, unknown) self.assertFalse(input._is_gwpy_data_good()) self.assertTrue(input.ignore_gwpy_data_quality_check) # make sure that when the flag is not present, error present args, unknown = parse_args(args_list, create_generation_parser()) args.trigger_time = 1126259462.4 args.ignore_gwpy_data_quality_check = False with self.assertRaises(BilbyPipeError): DataGenerationInput(args, unknown) self.assertFalse(input._is_gwpy_data_good()) self.assertFalse(input.ignore_gwpy_data_quality_check)
def test_data_quality_exception(self, mock_logs, quality_query): """Test the data quality function's PASS state. Parameters ---------- mock_logs: the logging module being used inside this function """ start_time_good, end_time_good = 1241725028.9, 1241725029 quality_query.side_effect = Exception("Some exception from GWpy") data_is_good = DataGenerationInput._is_gwpy_data_good( start_time=start_time_good, end_time=end_time_good, det="H1") self.assertTrue(data_is_good is None) self.assertTrue(mock_logs.warning.called)
def test_data_quality_pass(self, mock_logs, quality_query): """Test the data quality function's PASS state. Parameters ---------- mock_logs: the logging module being used inside this function """ full_data = gwpy.segments.DataQualityFlag.read( "tests/DATA/data_quality.hdf5") start_time_good, end_time_good = 1241725028.9, 1241725029 quality_query.return_value = full_data data_is_good = DataGenerationInput._is_gwpy_data_good( start_time=start_time_good, end_time=end_time_good, det="H1") self.assertTrue(data_is_good) self.assertFalse(mock_logs.warning.called)
def test_data_quality_fail(self, mock_logs, quality_query): """Test the data quality check function's FAIL state. Parameters ---------- mock_logs: the logging module being used inside this function """ full_data = gwpy.segments.DataQualityFlag.read( "tests/DATA/data_quality.hdf5") start_time_bad, end_time_bad = 1241725028.9, 1241725029.1 quality_query.return_value = full_data data_is_good = DataGenerationInput._is_gwpy_data_good( start_time=start_time_bad, end_time=end_time_bad, det="H1") self.assertFalse(data_is_good) self.assertTrue(mock_logs.warning.called) warning_log_str = mock_logs.warning.call_args.args[0] self.assertTrue("Data quality check: FAILED" in warning_log_str)