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
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'
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())
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))
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)
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)