diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2014-11-08 18:06:26 -0500 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2014-11-08 18:06:26 -0500 |
commit | 8272c85faadb234af25e5a4f029a8c24879ef67d (patch) | |
tree | fdeab2968d8e04984be773f2758bd6b0c2784ed1 /tests/test_bulk_insert.py | |
parent | 5112dc14330e86f7415e767622c7b880ecbbeb94 (diff) | |
download | alembic-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.py | 37 |
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 |