def create(self, table_data, index_list, source_info): con_mem = simplesqlite.connect_memdb() con_mem.create_table_from_tabledata(table_data) need_rename = self.__require_rename_table(con_mem, table_data.table_name) src_table_name = con_mem.fetch_table_name_list()[0] dst_table_name = src_table_name if need_rename: dst_table_name = self.__make_unique_table_name(src_table_name) self.__logger.debug("rename table from '{}' to '{}'".format( src_table_name, dst_table_name)) is_create_table = True simplesqlite.copy_table( src_con=con_mem, dst_con=self.__dst_con, src_table_name=src_table_name, dst_table_name=dst_table_name, ) else: is_create_table = not self.__dst_con.has_table(dst_table_name) simplesqlite.append_table(src_con=con_mem, dst_con=self.__dst_con, table_name=dst_table_name) self.__dst_con.create_index_list(dst_table_name, index_list) self.__result_logger.logging_success( source_info.get_name(self.__verbosity_level), dst_table_name, is_create_table)
def create(self, table_data, index_list): con_mem = simplesqlite.connect_sqlite_memdb() con_mem.create_table_from_tabledata(table_data) is_rename = self.__require_rename_table(con_mem, table_data.table_name) src_table_name = con_mem.get_table_name_list()[0] dst_table_name = src_table_name if is_rename: dst_table_name = self.__make_unique_table_name(src_table_name) self.__logger.debug(u"rename table from '{}' to '{}'".format( src_table_name, dst_table_name)) simplesqlite.copy_table(src_con=con_mem, dst_con=self.__dst_con, src_table_name=src_table_name, dst_table_name=dst_table_name) else: simplesqlite.append_table(src_con=con_mem, dst_con=self.__dst_con, table_name=dst_table_name) self.__dst_con.create_index_list(dst_table_name, [ simplesqlite.sqlquery.SqlQuery.sanitize_attr(index) for index in index_list ])
def create(self): is_rename, con_mem = self.__require_rename_table() src_table_name = con_mem.get_table_name_list()[0] dst_table_name = src_table_name if is_rename: dst_table_name = self.__make_unique_table_name(src_table_name) simplesqlite.copy_table(src_con=con_mem, dst_con=self.__dst_con, src_table_name=src_table_name, dst_table_name=dst_table_name) else: simplesqlite.append_table(src_con=con_mem, dst_con=self.__dst_con, table_name=dst_table_name)
def test_normal(self, con_mix, con_empty): assert append_table(src_con=con_mix, dst_con=con_empty, table_name=TEST_TABLE_NAME) result = con_mix.select(select="*", table_name=TEST_TABLE_NAME) src_data_matrix = result.fetchall() result = con_empty.select(select="*", table_name=TEST_TABLE_NAME) dst_data_matrix = result.fetchall() assert src_data_matrix == dst_data_matrix assert append_table(src_con=con_mix, dst_con=con_empty, table_name=TEST_TABLE_NAME) result = con_mix.select(select="*", table_name=TEST_TABLE_NAME) src_data_matrix = result.fetchall() result = con_empty.select(select="*", table_name=TEST_TABLE_NAME) dst_data_matrix = result.fetchall() assert src_data_matrix * 2 == dst_data_matrix
def create( self, table_data: TableData, index_list: Sequence[str], source_info: "SourceInfo" ) -> None: con_mem = simplesqlite.connect_memdb() con_mem.create_table_from_tabledata( table_data, primary_key=self.__add_pri_key_name, add_primary_key_column=String(self.__add_pri_key_name).is_type(), ) src_table_name = con_mem.fetch_table_names()[0] dst_table_name = src_table_name if self.__require_rename_table(con_mem, src_table_name): dst_table_name = self.__make_unique_table_name(src_table_name) self.__logger.debug( "rename table from '{}' to '{}'".format(src_table_name, dst_table_name) ) is_create_table = True simplesqlite.copy_table( src_con=con_mem, dst_con=self.__dst_con, src_table_name=src_table_name, dst_table_name=dst_table_name, ) else: is_create_table = not self.__dst_con.has_table(dst_table_name) simplesqlite.append_table( src_con=con_mem, dst_con=self.__dst_con, table_name=dst_table_name ) self.__dst_con.create_index_list(dst_table_name, index_list) self.__result_logger.logging_success( source_info.get_name(self.__verbosity_level), dst_table_name, is_create_table )
def create(self, table_data, index_list, source_info): con_mem = simplesqlite.connect_memdb() con_mem.create_table_from_tabledata( table_data, primary_key=self.__add_pri_key_name, add_primary_key_column=String(self.__add_pri_key_name).is_type(), ) src_table_name = con_mem.fetch_table_names()[0] dst_table_name = src_table_name if self.__require_rename_table(con_mem, table_data.table_name): dst_table_name = self.__make_unique_table_name(src_table_name) self.__logger.debug( "rename table from '{}' to '{}'".format(src_table_name, dst_table_name) ) is_create_table = True simplesqlite.copy_table( src_con=con_mem, dst_con=self.__dst_con, src_table_name=src_table_name, dst_table_name=dst_table_name, ) else: is_create_table = not self.__dst_con.has_table(dst_table_name) simplesqlite.append_table( src_con=con_mem, dst_con=self.__dst_con, table_name=dst_table_name ) self.__dst_con.create_index_list(dst_table_name, index_list) self.__result_logger.logging_success( source_info.get_name(self.__verbosity_level), dst_table_name, is_create_table )
def test_exception_permission(self, con_mix, con_ro): with pytest.raises(IOError): append_table(src_con=con_mix, dst_con=con_ro, table_name=TEST_TABLE_NAME)
def test_exception_null_connection(self, con_mix, con_null): with pytest.raises(NullDatabaseConnectionError): append_table(src_con=con_mix, dst_con=con_null, table_name=TEST_TABLE_NAME)
def test_exception_mismatch_schema(self, con_mix, con_profile): with pytest.raises(ValueError): append_table(src_con=con_mix, dst_con=con_profile, table_name=TEST_TABLE_NAME)