Example #1
0
    def test_process_delete_insert(self):
        self.delete_processor(self.conn, self.delete_records)

        expected = set([self.records[1]])
        result = set(get_records(self.conn, self.table.qualified_name))

        self.assertSetEqual(expected, result)
Example #2
0
    def test_insert_namedtuple(self):
        dml.insert(self.conn, self.table_name, self.columns, self.records)

        expected = self.records
        result = get_records(self.conn, self.table_name)

        self.assertEqual(expected, result)
Example #3
0
    def test_insert_many_namedtuples(self):
        dml.insert_many(self.conn,
                        self.table_name,
                        self.columns,
                        self.records,
                        chunksize=2)

        expected = self.records
        result = get_records(self.conn, self.table_name)

        self.assertEqual(expected, result)
Example #4
0
    def test_bulk_upsert(self):
        bulk_upserter = dml.BulkUpsertPrimaryKey(self.table,
                                                 delimiter=self.delimiter,
                                                 null_str=self.null_str,
                                                 force_null=self.force_null)
        file_object = io.StringIO(delimited_text())

        bulk_upserter(self.conn, file_object)

        result = get_records(self.conn, self.table_name)

        self.assertEqual(self.records, result)
Example #5
0
    def test_insert_many_tuples(self):
        records = [record[:] for record in self.records]
        dml.insert_many(self.conn,
                        self.table_name,
                        self.columns,
                        records,
                        chunksize=4)

        expected = self.records
        result = get_records(self.conn, self.table_name)

        self.assertEqual(expected, result)
Example #6
0
    def test_copy_table_from_csv(self):
        self.columns, self.records = make_records()
        file_object = io.StringIO(delimited_text())
        copy_from_table = dml.CopyFrom(self.table,
                                       delimiter=self.delimiter,
                                       null_str=self.null_str,
                                       force_null=self.force_null)

        with self.conn:
            copy_from_table(self.conn, file_object)

        result = get_records(self.conn, self.table_name)

        self.assertEqual(self.records, result)
Example #7
0
    def test_copy_from_csv(self):
        self.columns, self.records = make_records()
        file_object = io.StringIO(delimited_text())

        dml.copy_from_csv(self.conn,
                          file_object,
                          self.table_name,
                          '|',
                          force_null=['state'],
                          encoding='utf-8',
                          null_str='')

        result = get_records(self.conn, self.table_name)

        self.assertEqual(self.records, result)
Example #8
0
    def test_upsert_many(self):
        records = [('Miami', 'TX'), ('Chicago', 'MI')]

        with self.conn.cursor() as cursor:
            cursor.executemany(self.insert_query, records)
        self.conn.commit()

        bulk_upserter = dml.CopyFromUpsert(self.table,
                                           delimiter=self.delimiter,
                                           null_str=self.null_str,
                                           force_null=self.force_null)
        file_object = io.StringIO(delimited_text())

        with self.conn:
            bulk_upserter(self.conn, file_object)

        result = get_records(self.conn, self.table_name)

        self.assertEqual(self.records, result)
Example #9
0
    def test_upsert_many_primary_key(self):
        records = [('Chicago', 'IL')]

        with self.conn.cursor() as cursor:
            cursor.executemany(self.insert_query, records)
        self.conn.commit()

        bulk_upserter = dml.CopyFromUpsert(self.table,
                                           delimiter=self.delimiter,
                                           null_str=self.null_str,
                                           force_null=self.force_null)
        file_object = io.StringIO('\n'.join(
            [*delimited_text().splitlines()[0:1], '']))

        with self.conn:
            bulk_upserter(self.conn, file_object)

        result = get_records(self.conn, self.table_name)

        self.assertEqual(self.records, result)