Exemplo n.º 1
0
def test_simple_parse():
    data = parse_csv_with_header(TEST_CSV_FILE_PATH)

    # assert all(55) records are parsed
    assert len(data) == 55
    # assert all columns are included
    assert len(data[0].keys()) == 17
Exemplo n.º 2
0
def test_parse_with_filters():
    filters = {'name': 'Florida'}

    data = parse_csv_with_header(TEST_CSV_FILE_PATH, filters=filters)

    # assert filtered data are returned
    for item in data:
        assert item['name'] == 'Florida'
Exemplo n.º 3
0
def test_parse_with_includes():
    includes = {'id', 'name', 'abbreviation'}
    data = parse_csv_with_header(TEST_CSV_FILE_PATH, includes=includes)

    # assert all(55) records are parsed
    assert len(data) == 55
    # assert only
    assert includes == set(data[0].keys())
Exemplo n.º 4
0
def load_table_from_csv(tablename,
                        csv_file,
                        filters=None,
                        absolute_path=False):
    bulk_insert_data(
        tablename,
        parse_csv_with_header(get_path(csv_file, absolute_path),
                              filters=filters))
Exemplo n.º 5
0
def load_lookupvalue_from_csv(csv_file,
                              lookup_id,
                              version,
                              absolute_path=False):
    data = parse_csv_with_header(get_path(csv_file, absolute_path))

    for item in data:
        item['lookup_id'] = lookup_id
        item['version'] = version

    if len(data) > 0:
        bulk_insert_data('lookupvalue', data)
Exemplo n.º 6
0
def load_lookup_from_csv(csv_file,
                         store_id_override=None,
                         filters=None,
                         absolute_path=False):
    data = parse_csv_with_header(get_path(csv_file, absolute_path),
                                 filters=filters)

    # 1. check if lookup already exist
    # 2. update store_id if store_id_override is provided
    for item in data:
        store_id = store_id_override if store_id_override else item.get(
            'store_id', -1)
        exist = exist_lookup_by_name_and_store(store_id, item['name'])
        if exist:
            raise Exception(
                'Lookup with name %s already exist. Please specify the lookup name which has\'t been populated.'
            )
        item['store_id'] = store_id

    if len(data) > 0:
        bulk_insert_data('lookup', data)