Example #1
0
    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)
Example #2
0
    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
        ])
Example #3
0
    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)
Example #4
0
    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
Example #5
0
    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
Example #6
0
    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
        )
Example #7
0
    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
        )
Example #8
0
 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)
Example #9
0
 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)
Example #10
0
 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)
Example #11
0
 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)
Example #12
0
 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)
Example #13
0
 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)