summaryrefslogtreecommitdiff
path: root/tests/test_autogen_render.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2019-09-17 19:00:50 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2019-09-17 20:59:42 -0400
commitbc0df6ccb81a7722d4c73f019bded66cc09362fd (patch)
tree9808c787caba52012a27de137c0210a739c5e893 /tests/test_autogen_render.py
parentbb153bd4f881f6847fbe80df104fb63b1224d68d (diff)
downloadalembic-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.py33
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