diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2019-09-17 19:00:50 -0400 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2019-09-17 20:59:42 -0400 |
commit | bc0df6ccb81a7722d4c73f019bded66cc09362fd (patch) | |
tree | 9808c787caba52012a27de137c0210a739c5e893 /tests/test_autogen_render.py | |
parent | bb153bd4f881f6847fbe80df104fb63b1224d68d (diff) | |
download | alembic-bc0df6ccb81a7722d4c73f019bded66cc09362fd.tar.gz |
Support autogenerate for add_column kwargs
Added autogenerate support for :class:`.Column` objects that have
dialect-specific ``**kwargs``, support first added in SQLAlchemy 1.3.
This includes SQLite "on conflict" as well as options used by some
third party dialects.
Change-Id: Iede4ee74e74181f2f2357c6a69c6f3fa0c985392
Fixes: #518
Diffstat (limited to 'tests/test_autogen_render.py')
-rw-r--r-- | tests/test_autogen_render.py | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/test_autogen_render.py b/tests/test_autogen_render.py index ef2130a..14a8684 100644 --- a/tests/test_autogen_render.py +++ b/tests/test_autogen_render.py @@ -22,6 +22,7 @@ from sqlalchemy import Numeric from sqlalchemy import PrimaryKeyConstraint from sqlalchemy import String from sqlalchemy import Table +from sqlalchemy import testing from sqlalchemy import text from sqlalchemy import types from sqlalchemy import Unicode @@ -89,6 +90,23 @@ class AutogenRenderTest(TestBase): "['active', 'code'], unique=False)", ) + @testing.emits_warning("Can't validate argument ") + def test_render_add_index_custom_kwarg(self): + t = Table( + "test", + MetaData(), + Column("id", Integer, primary_key=True), + Column("active", Boolean()), + Column("code", String(255)), + ) + idx = Index(None, t.c.active, t.c.code, somedialect_foobar="option") + op_obj = ops.CreateIndexOp.from_index(idx) + eq_ignore_whitespace( + autogenerate.render_op_text(self.autogen_context, op_obj), + "op.create_index(op.f('ix_test_active'), 'test', " + "['active', 'code'], unique=False, somedialect_foobar='option')", + ) + def test_render_add_index_batch(self): """ autogenerate.render._add_index @@ -1057,6 +1075,21 @@ class AutogenRenderTest(TestBase): "server_default='5', nullable=True))", ) + @testing.requires.sqlalchemy_13 + @testing.emits_warning("Can't validate argument ") + def test_render_add_column_custom_kwarg(self): + col = Column( + "x", Integer, server_default="5", somedialect_foobar="option" + ) + Table("foo", MetaData(), col) + + op_obj = ops.AddColumnOp.from_column(col) + eq_ignore_whitespace( + autogenerate.render_op_text(self.autogen_context, op_obj), + "op.add_column('foo', sa.Column('x', sa.Integer(), " + "server_default='5', nullable=True, somedialect_foobar='option'))", + ) + def test_render_add_column_system(self): # this would never actually happen since "system" columns # can't be added in any case. Howver it will render as |