Пример #1
0
def test_main_app(header_mock, test_name):
    header_mock.side_effect = ac.make_headers_from_file
    storage_name = main_app.BlankName(entry=test_name)
    metadata_reader = rdc.FileMetadataReader()
    metadata_reader.set(storage_name)
    file_type = 'application/fits'
    metadata_reader.file_info[storage_name.file_uri].file_type = file_type
    kwargs = {
        'storage_name': storage_name,
        'metadata_reader': metadata_reader,
    }
    expected_fqn = f'{TEST_DATA_DIR}/{test_name}.expected.xml'
    expected = mc.read_obs_from_file(expected_fqn)
    in_fqn = expected_fqn.replace('.expected', '.in')
    actual_fqn = expected_fqn.replace('expected', 'actual')
    if os.path.exists(actual_fqn):
        os.unlink(actual_fqn)
    observation = None
    if os.path.exists(in_fqn):
        observation = mc.read_obs_from_file(in_fqn)
    observation = fits2caom2_augmentation.visit(observation, **kwargs)
    try:
        compare_result = get_differences(expected, observation)
    except Exception as e:
        mc.write_obs_to_file(observation, actual_fqn)
        raise e
    if compare_result is not None:
        mc.write_obs_to_file(observation, actual_fqn)
        compare_text = '\n'.join([r for r in compare_result])
        msg = (f'Differences found in observation {expected.observation_id}\n'
               f'{compare_text}')
        raise AssertionError(msg)
Пример #2
0
def test_visitor(test_name):
    storage_name = OmmName(file_name=basename(test_name).replace(
        '.header', '.gz'), )
    file_info = FileInfo(id=storage_name.file_uri,
                         file_type='application/fits')
    headers = ac.make_headers_from_file(test_name)
    metadata_reader = rdc.FileMetadataReader()
    metadata_reader._headers = {storage_name.file_uri: headers}
    metadata_reader._file_info = {storage_name.file_uri: file_info}
    kwargs = {
        'storage_name': storage_name,
        'metadata_reader': metadata_reader,
    }
    observation = None
    input_file = f'{TEST_DATA_DIR}/in.{storage_name.product_id}.fits.xml'
    if exists(input_file):
        observation = mc.read_obs_from_file(input_file)
    observation = fits2caom2_augmentation.visit(observation, **kwargs)

    expected_fqn = (f'{TEST_DATA_DIR}/{storage_name.file_id}.expected.xml')
    expected = mc.read_obs_from_file(expected_fqn)
    compare_result = get_differences(expected, observation)
    if compare_result is not None:
        actual_fqn = expected_fqn.replace('expected', 'actual')
        mc.write_obs_to_file(observation, actual_fqn)
        compare_text = '\n'.join([r for r in compare_result])
        msg = (f'Differences found in observation {expected.observation_id}\n'
               f'{compare_text}')
        raise AssertionError(msg)
Пример #3
0
def test_visit(header_mock, test_files):
    obs_id = test_files[0]
    header_mock.side_effect = ac.make_headers_from_file
    expected_fqn = f'{TEST_DATA_DIR}/{obs_id}.xml'
    expected = mc.read_obs_from_file(expected_fqn)
    in_fqn = expected_fqn.replace('.xml', '.in.xml')
    actual_fqn = expected_fqn.replace('.xml', '.actual.xml')
    observation = None
    if os.path.exists(in_fqn):
        observation = mc.read_obs_from_file(in_fqn)

    for f_name in test_files[1:]:
        temp_fqn = f'{TEST_DATA_DIR}/{f_name}'
        vlass_name = storage_name.VlassName(entry=temp_fqn)
        metadata_reader = rdc.FileMetadataReader()
        metadata_reader.set(vlass_name)
        file_type = 'application/fits'
        metadata_reader.file_info[vlass_name.file_uri].file_type = file_type
        kwargs = {
            'storage_name': vlass_name,
            'metadata_reader': metadata_reader,
        }
        observation = fits2caom2_augmentation.visit(observation, **kwargs)
    try:
        compare_result = get_differences(expected, observation)
    except Exception as e:
        mc.write_obs_to_file(observation, actual_fqn)
        raise e
    if compare_result is not None:
        mc.write_obs_to_file(observation, actual_fqn)
        compare_text = '\n'.join([r for r in compare_result])
        msg = (f'Differences found in observation {expected.observation_id}\n'
               f'{compare_text}')
        raise AssertionError(msg)
Пример #4
0
def _common():
    config = mc.Config()
    config.get_executors()
    clients = clc.ClientCollection(config)
    metadata_reader = None
    if config.use_local_files:
        metadata_reader = rdc.FileMetadataReader()
    name_builder = nbc.EntryBuilder(dao_name.DAOName)
    return config, clients, name_builder, metadata_reader
Пример #5
0
def test_failure():
    test_fqn = (
        f'{test_fits2caom2_augmentation.TEST_DATA_DIR}/broken_data/'
        f'dao_c122_2001_006946.fits.header'
    )
    dao_name = DAOName(basename(test_fqn).replace('.header', '.gz'))
    file_info = FileInfo(id=dao_name.file_uri, file_type='application/fits')
    headers = ac.make_headers_from_file(test_fqn)
    metadata_reader = rdc.FileMetadataReader()
    metadata_reader._headers = {dao_name.file_uri: headers}
    metadata_reader._file_info = {dao_name.file_uri: file_info}
    kwargs = {
        'storage_name': dao_name,
        'metadata_reader': metadata_reader,
    }
    observation = None
    observation = fits2caom2_augmentation.visit(observation, **kwargs)
    assert observation is None, 'failure, no observation creation'