def test_skipping_rows_if_data_exist(self): mysession = Session() # write existing data writer = SQLTableWriter(mysession, [Pyexcel,self.data[0], None, None]) writer.write_array(self.data[1:]) writer.close() query_sets=mysession.query(Pyexcel).all() results = from_query_sets(self.data[0], query_sets) assert results == self.results # update data using custom initializer update_data = [ ['birth', 'id', 'name', 'weight'], [datetime.date(2014, 11, 11), 0, 'Adam_E', 12.25], [datetime.date(2014, 11, 12), 1, 'Smith_E', 11.25] ] def row_updater(row): an_instance = mysession.query(Pyexcel).get(row['id']) if an_instance is not None: raise PyexcelSQLSkipRowException() writer = SQLTableWriter(mysession, [Pyexcel,update_data[0], None, row_updater]) writer.write_array(update_data[1:]) writer.close() query_sets=mysession.query(Pyexcel).all() results = from_query_sets(self.data[0], query_sets) assert results == self.results mysession.close()
def test_one_table(self): mysession = Session() writer = SQLTableWriter(mysession, [Pyexcel,self.data[0], None, None]) writer.write_array(self.data[1:]) writer.close() query_sets=mysession.query(Pyexcel).all() results = from_query_sets(self.data[0], query_sets) assert results == self.results mysession.close()
def test_one_table(self): mysession = Session() writer = SQLTableWriter(mysession, [Pyexcel,self.data[0], None, None], auto_commit=False) writer.write_array(self.data[1:]) writer.close() mysession.close() mysession2 = Session() query_sets=mysession2.query(Pyexcel).all() results = from_query_sets(self.data[0], query_sets) assert len(query_sets) == 0 mysession2.close()
def test_one_table_with_empty_rows(self): mysession = Session() data = [ ['birth', 'id', 'name', 'weight'], ['', '', ''], [datetime.date(2014, 11, 11), 0, 'Adam', 11.25], [datetime.date(2014, 11, 12), 1, 'Smith', 12.25] ] writer = SQLTableWriter(mysession, [Pyexcel,data[0], None, None]) writer.write_array(data[1:]) writer.close() query_sets=mysession.query(Pyexcel).all() results = from_query_sets(data[0], query_sets) assert results == self.results mysession.close()
def test_one_table_using_mapdict_as_array(self): mysession = Session() self.data = [ ["Birth Date", "Id", "Name", "Weight"], [datetime.date(2014, 11, 11), 0, 'Adam', 11.25], [datetime.date(2014, 11, 12), 1, 'Smith', 12.25] ] mapdict = ['birth', 'id', 'name', 'weight'] writer = SQLTableWriter(mysession, [Pyexcel,self.data[0], mapdict, None]) writer.write_array(self.data[1:]) writer.close() query_sets=mysession.query(Pyexcel).all() results = from_query_sets(mapdict, query_sets) assert results == self.results mysession.close()
def test_one_table_with_empty_string_in_unique_field(self): mysession = Session() data = [ ['birth', 'id', 'name', 'weight'], [datetime.date(2014, 11, 11), 0, '', 11.25], [datetime.date(2014, 11, 12), 1, '', 12.25] ] writer = SQLTableWriter(mysession, [Pyexcel,data[0], None, None]) writer.write_array(data[1:]) writer.close() query_sets=mysession.query(Pyexcel).all() results = from_query_sets(data[0], query_sets) assert results == [['birth', 'id', 'name', 'weight'], ['2014-11-11', 0, None, 11.25], ['2014-11-12', 1, None, 12.25]] mysession.close()
def test_update_existing_row(self): mysession = Session() # write existing data writer = SQLTableWriter(mysession, [Pyexcel,self.data[0], None, None]) writer.write_array(self.data[1:]) writer.close() query_sets=mysession.query(Pyexcel).all() results = from_query_sets(self.data[0], query_sets) assert results == self.results # update data using custom initializer update_data = [ ['birth', 'id', 'name', 'weight'], [datetime.date(2014, 11, 11), 0, 'Adam_E', 12.25], [datetime.date(2014, 11, 12), 1, 'Smith_E', 11.25] ] updated_results = [ ['birth', 'id', 'name', 'weight'], ['2014-11-11', 0, 'Adam_E', 12.25], ['2014-11-12', 1, 'Smith_E', 11.25] ] def row_updater(row): an_instance = mysession.query(Pyexcel).get(row['id']) if an_instance is None: an_instance = Pyexcel() for name in row.keys(): setattr(an_instance, name, row[name]) return an_instance writer = SQLTableWriter(mysession, [Pyexcel,update_data[0], None, row_updater]) writer.write_array(update_data[1:]) writer.close() query_sets=mysession.query(Pyexcel).all() results = from_query_sets(self.data[0], query_sets) assert results == updated_results mysession.close()