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)
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)
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)
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)
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)
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)
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)
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)
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)