summaryrefslogtreecommitdiff
path: root/tests/test_bulk_insert.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2014-11-08 18:06:26 -0500
committerMike Bayer <mike_mp@zzzcomputing.com>2014-11-08 18:06:26 -0500
commit8272c85faadb234af25e5a4f029a8c24879ef67d (patch)
treefdeab2968d8e04984be773f2758bd6b0c2784ed1 /tests/test_bulk_insert.py
parent5112dc14330e86f7415e767622c7b880ecbbeb94 (diff)
downloadalembic-8272c85faadb234af25e5a4f029a8c24879ef67d.tar.gz
- The :class:`~sqlalchemy.schema.Table` object is now returned when
the :meth:`.Operations.create_table` method is used. This ``Table`` is suitable for use in subsequent SQL operations, in particular the :meth:`.Operations.bulk_insert` operation. fixes #205
Diffstat (limited to 'tests/test_bulk_insert.py')
-rw-r--r--tests/test_bulk_insert.py37
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/test_bulk_insert.py b/tests/test_bulk_insert.py
index 97a8dd8..5121e90 100644
--- a/tests/test_bulk_insert.py
+++ b/tests/test_bulk_insert.py
@@ -176,6 +176,26 @@ class BulkInsertTest(TestBase):
'SET IDENTITY_INSERT ins_table OFF'
)
+ def test_bulk_insert_from_new_table(self):
+ context = op_fixture("postgresql", True)
+ t1 = op.create_table(
+ "ins_table",
+ Column('id', Integer),
+ Column('v1', String()),
+ Column('v2', String()),
+ )
+ op.bulk_insert(t1, [
+ {'id': 1, 'v1': 'row v1', 'v2': 'row v5'},
+ {'id': 2, 'v1': 'row v2', 'v2': 'row v6'},
+ ])
+ context.assert_(
+ 'CREATE TABLE ins_table (id INTEGER, v1 VARCHAR, v2 VARCHAR)',
+ "INSERT INTO ins_table (id, v1, v2) VALUES "
+ "(1, 'row v1', 'row v5')",
+ "INSERT INTO ins_table (id, v1, v2) VALUES "
+ "(2, 'row v2', 'row v6')"
+ )
+
def test_invalid_format(self):
context, t1 = self._table_fixture("sqlite", False)
assert_raises_message(
@@ -263,3 +283,20 @@ class RoundTripTest(TestBase):
(2, "d2"),
]
)
+
+ def test_bulk_insert_from_new_table(self):
+ t1 = self.op.create_table(
+ "ins_table",
+ Column('id', Integer),
+ Column('v1', String()),
+ Column('v2', String()),
+ )
+ self.op.bulk_insert(t1, [
+ {'id': 1, 'v1': 'row v1', 'v2': 'row v5'},
+ {'id': 2, 'v1': 'row v2', 'v2': 'row v6'},
+ ])
+ eq_(
+ self.conn.execute(
+ "select id, v1, v2 from ins_table order by id").fetchall(),
+ [(1, u'row v1', u'row v5'), (2, u'row v2', u'row v6')]
+ ) \ No newline at end of file