示例#1
0
def test_json_meta_info_provider_query_local():
    provider = JsonMetaInfoProvider(path_to_json_file, None)
    query_string = "POLYGON((5 5, 35 5, 35 35, 5 35, 5 5));2017-03;2017-03;TYPE_A, TYPE_C"
    meta_data_infos = provider.query_local(query_string)
    assert len(meta_data_infos) == 3
    ensure_first_data_set(meta_data_infos[0])
    ensure_second_data_set(meta_data_infos[1])
    ensure_fourth_data_set(meta_data_infos[2])
示例#2
0
def test_get_parameters_as_dict():
    provider = JsonMetaInfoProvider(path_to_json_file, None)

    meta_info_providers_dict = provider._get_parameters_as_dict()

    assert 2 == len(meta_info_providers_dict.keys())
    assert 'path_to_json_file' in meta_info_providers_dict.keys()
    assert path_to_json_file == meta_info_providers_dict['path_to_json_file']
    assert 'supported_data_types' in meta_info_providers_dict.keys()
    assert 'TYPE_A,TYPE_B,TYPE_C' == meta_info_providers_dict[
        'supported_data_types']
示例#3
0
def test_json_meta_info_provider_query_for_times():
    provider = JsonMetaInfoProvider(path_to_json_file, None)
    query_string = "POLYGON((5 5, 35 5, 35 35, 5 35, 5 5));2017-03-24;2017-03-26;TYPE_A, TYPE_B, TYPE_C"
    meta_data_infos = provider.query(query_string)
    assert len(meta_data_infos) == 2
    ensure_first_data_set(meta_data_infos[0])
    ensure_fourth_data_set(meta_data_infos[1])

    query_string = "POLYGON((5 5, 35 5, 35 35, 5 35, 5 5));2017-03-19;2017-03-20;TYPE_A, TYPE_B, TYPE_C"
    meta_data_infos = provider.query(query_string)
    assert len(meta_data_infos) == 3
    ensure_second_data_set(meta_data_infos[0])
    ensure_third_data_set(meta_data_infos[1])
    ensure_fourth_data_set(meta_data_infos[2])

    query_string = "POLYGON((5 5, 35 5, 35 35, 5 35, 5 5));2017-03-10;2017-03-10;TYPE_A, TYPE_B, TYPE_C"
    meta_data_infos = provider.query(query_string)
    assert len(meta_data_infos) == 1
    ensure_fourth_data_set(meta_data_infos[0])

    query_string = "POLYGON((5 5, 35 5, 35 35, 5 35, 5 5));2017-03;2017-03;TYPE_A, TYPE_B, TYPE_C"
    meta_data_infos = provider.query(query_string)
    assert len(meta_data_infos) == 4
    ensure_first_data_set(meta_data_infos[0])
    ensure_second_data_set(meta_data_infos[1])
    ensure_third_data_set(meta_data_infos[2])
    ensure_fourth_data_set(meta_data_infos[3])

    query_string = "POLYGON((5 5, 35 5, 35 35, 5 35, 5 5));2016-03;2016-03;TYPE_A, TYPE_B, TYPE_C"
    meta_data_infos = provider.query(query_string)
    assert len(meta_data_infos) == 0
示例#4
0
def test_update():
    # copy this so we don't mess up the original file
    path_to_json_file_2 = path_to_json_file + '_2'
    shutil.copyfile(path_to_json_file, path_to_json_file_2)
    try:
        provider = JsonMetaInfoProvider(path_to_json_file_2,
                                        'TYPE_A,TYPE_B,TYPE_C,TYPE_D')
        data_set_meta_info = DataSetMetaInfo(
            coverage="POLYGON((10 10, 20 10, 20 20, 10 20, 10 10))",
            start_time="2017-03-21 14:33:00",
            end_time="2017-03-21 14:45:00",
            data_type="TYPE_D",
            identifier="ctfgb")
        provider.update(data_set_meta_info)

        # use a second provider to ensure the update is saved
        provider_2 = JsonMetaInfoProvider(path_to_json_file_2, None)

        query_result = provider_2.query(";2017-03-21;2017-03-21;TYPE_D")
        assert 1 == len(query_result)
        assert "POLYGON((10 10, 20 10, 20 20, 10 20, 10 10))" == query_result[
            0].coverage
        assert "2017-03-21 14:33:00" == query_result[0].start_time
        assert "2017-03-21 14:45:00" == query_result[0].end_time
        assert "TYPE_D" == query_result[0].data_type
        assert "ctfgb" == query_result[0].identifier
    finally:
        os.remove(path_to_json_file_2)
示例#5
0
def test_json_meta_info_provider_query_for_region():
    provider = JsonMetaInfoProvider(path_to_json_file, None)
    query_string = "POLYGON((5 5, 20 5, 20 20, 5 20, 5 5));2017-03-01;2017-03-31;TYPE_A, TYPE_B, TYPE_C"
    meta_data_infos = provider.query(query_string)
    assert len(meta_data_infos) == 2
    ensure_first_data_set(meta_data_infos[0])
    ensure_second_data_set(meta_data_infos[1])

    query_string = "POLYGON((5 20, 35 20, 35 40, 5 40, 5 20));2017-03-01;2017-03-31;TYPE_A, TYPE_B, TYPE_C"
    meta_data_infos = provider.query(query_string)
    assert len(meta_data_infos) == 3
    ensure_second_data_set(meta_data_infos[0])
    ensure_third_data_set(meta_data_infos[1])
    ensure_fourth_data_set(meta_data_infos[2])

    query_string = "POLYGON((35 0, 45 0, 45 10, 35 10, 35 0));2017-03-01;2017-03-31;TYPE_A, TYPE_B, TYPE_C"
    meta_data_infos = provider.query(query_string)
    assert len(meta_data_infos) == 0
示例#6
0
def test_remove():
    # copy this so we don't mess up the original file
    path_to_json_file_2 = path_to_json_file + '_3'
    shutil.copyfile(path_to_json_file, path_to_json_file_2)
    try:
        provider = JsonMetaInfoProvider(path_to_json_file_2, None)
        query_string = "POLYGON((5 5, 35 5, 35 35, 5 35, 5 5));2017-03-10;2017-03-10;TYPE_A, TYPE_B, TYPE_C"
        meta_data_infos = provider.query(query_string)
        assert 1 == len(meta_data_infos)
        ensure_fourth_data_set(meta_data_infos[0])
        provider.remove(meta_data_infos[0])

        # use a second provider to ensure the update is saved
        provider_2 = JsonMetaInfoProvider(path_to_json_file_2, None)
        meta_data_infos_2 = provider_2.query(query_string)

        assert 0 == len(meta_data_infos_2)
    finally:
        os.remove(path_to_json_file_2)
示例#7
0
def test_provides_data_type():
    # copy this so we don't mess up the original file
    path_to_json_file_2 = path_to_json_file + '_4'
    shutil.copyfile(path_to_json_file, path_to_json_file_2)
    try:
        provider = JsonMetaInfoProvider(path_to_json_file_2,
                                        'TYPE_A,TYPE_B,TYPE_C')
        assert True == provider.provides_data_type("TYPE_A")
        assert True == provider.provides_data_type("TYPE_B")
        assert True == provider.provides_data_type("TYPE_C")
        assert False == provider.provides_data_type("TYPE_D")
        assert False == provider.provides_data_type("ctfsvbzrt")
    finally:
        os.remove(path_to_json_file_2)
示例#8
0
def test_json_meta_info_provider_query_non_local():
    provider = JsonMetaInfoProvider(path_to_json_file, None)
    query_string = "POLYGON((0 0, 90 0, 90 90, 0 90, 0 0));2017-01;2019-01;TYPE_A, TYPE_B, TYPE_C"
    meta_data_infos = provider.query_non_local(query_string)
    assert len(meta_data_infos) == 0
示例#9
0
def test_get_name():
    provider = JsonMetaInfoProvider(path_to_json_file, None)

    assert 'JsonMetaInfoProvider' == provider.name()
    assert 'JsonMetaInfoProvider' == JsonMetaInfoProvider.name()