示例#1
0
def test_union_catalog():
    path = os.path.dirname(__file__)
    uri1 = os.path.join(path, 'catalog_union_1.yml')
    uri2 = os.path.join(path, 'catalog_union_2.yml')

    union_cat = Catalog([uri1, uri2])

    assert_items_equal(list(union_cat),
                       ['entry1', 'entry1_part', 'use_example1'])

    assert union_cat.entry1_part.describe() == {
        'container':
        'dataframe',
        'user_parameters': [{
            'name': 'part',
            'description': 'part of filename',
            'default': '1',
            'type': 'str',
            'allowed': ['1', '2'],
        }],
        'description':
        'entry1 part',
        'direct_access':
        'allow'
    }

    desc_open = union_cat.entry1_part.describe_open()
    assert desc_open['args']['urlpath'].endswith('entry1_1.csv')
    del desc_open['args']['urlpath']  # Full path will be system dependent
    desc_open['args']['metadata'].pop('catalog_dir')
    assert 'csv' in str(desc_open.pop('plugin'))
    assert desc_open == {
        'args': {
            'metadata': {
                'bar': [2, 4, 6],
                'cache': [],
                'foo': 'baz'
            }
        },
        'description': 'entry1 part',
        'direct_access': 'allow',
        'metadata': {
            'bar': [2, 4, 6],
            'cache': [],
            'foo': 'baz'
        },
    }

    # Implied creation of data source
    assert union_cat.entry1.container == 'dataframe'
    md = union_cat.entry1.metadata
    md.pop('catalog_dir')
    assert md == dict(foo='bar', bar=[1, 2, 3], cache=[])

    # Use default parameters in explict creation of data source
    assert union_cat.entry1_part().container == 'dataframe'
    # Specify parameters in creation of data source
    assert union_cat.entry1_part(part='2').container == 'dataframe'
示例#2
0
def test_union_catalog():
    path = os.path.dirname(__file__)
    uri1 = os.path.join(path, 'catalog_union_1.yml')
    uri2 = os.path.join(path, 'catalog_union_2.yml')

    union_cat = Catalog([uri1, uri2])

    assert_items_equal(list(union_cat),
                       ['entry1', 'entry1_part', 'use_example1'])

    expected = {
        'name':
        'entry1_part',
        'container':
        'dataframe',
        'user_parameters': [{
            'name': 'part',
            'description': 'part of filename',
            'default': '1',
            'type': 'str',
            'allowed': ['1', '2'],
        }],
        'description':
        'entry1 part',
        'direct_access':
        'allow'
    }
    for k in expected:
        assert union_cat.entry1_part.describe()[k] == expected[k]

    # Implied creation of data source
    assert union_cat.entry1.container == 'dataframe'
    md = union_cat.entry1._metadata
    assert md == dict(foo='bar', bar=[1, 2, 3])

    # Use default parameters in explict creation of data source
    assert union_cat.entry1_part().container == 'dataframe'
    # Specify parameters in creation of data source
    assert union_cat.entry1_part(part='2').container == 'dataframe'