Skip to content
This repository was archived by the owner on Sep 14, 2019. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 14 additions & 14 deletions test_load_table.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,23 +51,23 @@ def test_good_csv(self, tmpdir):
assert 'people' in self.meta.tables
people = self.meta.tables['people']

assert_column_type(people.columns['index'], int)
assert_column_type(people.columns['id'], int)
assert_column_type(people.columns['name'], str)
assert_column_type(people.columns['dob'], str)
assert_column_type(people.columns['number_of_pets'], str)

assert people.columns['index'].primary_key is True
assert people.columns['id'].primary_key is True
assert people.columns['name'].primary_key is False

assert_columns_have_non_unique_indexes(self.engine, 'people', 'name',
'dob', 'number_of_pets')

connection = self.engine.connect()
results = connection.execute(
select([people]).order_by(people.c.index)).fetchall()
assert (0, 'Tom', '1980-02-26', '0') == results[0]
assert (1, 'Dick', '1982-03-14', '3') == results[1]
assert (2, 'Harry', '1972-11-24', '2') == results[2]
select([people]).order_by(people.c.id)).fetchall()
assert (1, 'Tom', '1980-02-26', '0') == results[0]
assert (2, 'Dick', '1982-03-14', '3') == results[1]
assert (3, 'Harry', '1972-11-24', '2') == results[2]

def test_load_with_chunking(self, tmpdir):
CSV = """name, dob, number_of_pets
Expand All @@ -82,10 +82,10 @@ def test_load_with_chunking(self, tmpdir):

connection = self.engine.connect()
results = connection.execute(
select([people]).order_by(people.c.index)).fetchall()
assert (0, 'Tom', '1980-02-26', '0') == results[0]
assert (1, 'Dick', '1982-03-14', '3') == results[1]
assert (2, 'Harry', '1972-11-24', '2') == results[2]
select([people]).order_by(people.c.id)).fetchall()
assert (1, 'Tom', '1980-02-26', '0') == results[0]
assert (2, 'Dick', '1982-03-14', '3') == results[1]
assert (3, 'Harry', '1972-11-24', '2') == results[2]

def test_empty_csv(self, tmpdir):
file_name = 'empty.csv'
Expand Down Expand Up @@ -120,10 +120,10 @@ def test_null_empty_string_handling(self, tmpdir):

connection = self.engine.connect()
results = connection.execute(
select([people]).order_by(people.c.index)).fetchall()
assert (0, 'Tom', '0') == results[0]
assert (1, None, '3') == results[1]
assert (2, None, '2') == results[2]
select([people]).order_by(people.c.id)).fetchall()
assert (1, 'Tom', '0') == results[0]
assert (2, None, '3') == results[1]
assert (3, None, '2') == results[2]

def test_embedded_space_in_tablename_and_filename(self, tmpdir):
CSV = """name, number_of_pets
Expand Down
7 changes: 4 additions & 3 deletions utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -95,12 +95,13 @@ def load_table(filename,
dtype=dtypes,
skipinitialspace=True)
for idx, chunk in enumerate(chunks):
chunk.index += chunksize * idx
chunk.index += chunksize * idx + 1
chunk.index.name = 'id'
to_sql(tablename,
engine,
chunk,
chunksize=chunksize,
keys='index',
keys='id',
if_exists='append', )
_index_table(tablename, metadata, engine, config.CASE_INSENSITIVE)

Expand All @@ -111,7 +112,7 @@ def _index_table(tablename, metadata, engine, case_insensitive=False):
"""
table = sa.Table(tablename, metadata, autoload_with=engine)
for label, column in table.columns.items():
if label == 'index':
if label == 'id':
continue
index_name = 'ix_{0}'.format(label.lower())
indexes = [sa.Index(index_name, column)]
Expand Down