From 7c319dcbbcc527f8577cf2d577e6cc0b87d99661 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Sun, 30 Nov 2014 19:30:27 -0500 Subject: - repair the rendering of add_fk_constraint(), quoting there too --- alembic/autogenerate/render.py | 8 ++++---- tests/test_autogen_render.py | 31 ++++++++++++++++++++++++++++++- tests/test_autogenerate.py | 6 +++--- 3 files changed, 37 insertions(+), 8 deletions(-) diff --git a/alembic/autogenerate/render.py b/alembic/autogenerate/render.py index ec6165b..16f8c29 100644 --- a/alembic/autogenerate/render.py +++ b/alembic/autogenerate/render.py @@ -249,10 +249,10 @@ def _add_fk_constraint(constraint, autogen_context): args = [ repr(_render_gen_name(autogen_context, constraint.name)), - source_table, - target_table, - repr(source_columns), - repr(target_columns) + repr(_ident(source_table)), + repr(_ident(target_table)), + repr([_ident(col) for col in source_columns]), + repr([_ident(col) for col in target_columns]) ] if source_schema: args.append( diff --git a/tests/test_autogen_render.py b/tests/test_autogen_render.py index 1e25e6b..e020cec 100644 --- a/tests/test_autogen_render.py +++ b/tests/test_autogen_render.py @@ -254,6 +254,36 @@ unique=False, """ "schema='CamelSchema', type_='unique')" ) + def test_add_fk_constraint(self): + m = MetaData() + Table('a', m, Column('id', Integer, primary_key=True)) + b = Table('b', m, Column('a_id', Integer, ForeignKey('a.id'))) + fk = ForeignKeyConstraint(['a_id'], ['a.id'], name='fk_a_id') + b.append_constraint(fk) + eq_ignore_whitespace( + autogenerate.render._add_fk_constraint(fk, self.autogen_context), + "op.create_foreign_key('fk_a_id', 'b', 'a', ['a_id'], ['id'])" + ) + + def test_add_fk_constraint_schema(self): + m = MetaData() + Table( + 'a', m, Column('id', Integer, primary_key=True), + schema="CamelSchemaTwo") + b = Table( + 'b', m, Column('a_id', Integer, ForeignKey('a.id')), + schema="CamelSchemaOne") + fk = ForeignKeyConstraint( + ["a_id"], + ["CamelSchemaTwo.a.id"], name='fk_a_id') + b.append_constraint(fk) + eq_ignore_whitespace( + autogenerate.render._add_fk_constraint(fk, self.autogen_context), + "op.create_foreign_key('fk_a_id', 'b', 'a', ['a_id'], ['id']," + " source_schema='CamelSchemaOne', " + "referent_schema='CamelSchemaTwo')" + ) + def test_drop_fk_constraint(self): m = MetaData() Table('a', m, Column('id', Integer, primary_key=True)) @@ -266,7 +296,6 @@ unique=False, """ ) def test_drop_fk_constraint_schema(self): - m = MetaData() m = MetaData() Table( 'a', m, Column('id', Integer, primary_key=True), diff --git a/tests/test_autogenerate.py b/tests/test_autogenerate.py index 4fb3a53..a458faf 100644 --- a/tests/test_autogenerate.py +++ b/tests/test_autogenerate.py @@ -559,7 +559,7 @@ nullable=True)) type_=sa.Numeric(precision=10, scale=2), nullable=True, existing_server_default=sa.text('0')) - op.create_foreign_key(None, order, user, ['user_id'], ['id']) + op.create_foreign_key(None, 'order', 'user', ['user_id'], ['id']) op.alter_column('user', 'a1', existing_type=sa.TEXT(), server_default='x', @@ -630,7 +630,7 @@ nullable=True)) type_=sa.Numeric(precision=10, scale=2), nullable=True, existing_server_default=sa.text('0')) - batch_op.create_foreign_key(None, order, user, ['user_id'], ['id']) + batch_op.create_foreign_key(None, 'order', 'user', ['user_id'], ['id']) with op.batch_alter_table('user', schema=None) as batch_op: batch_op.alter_column('a1', @@ -934,7 +934,7 @@ schema='%(schema)s') nullable=True, existing_server_default=sa.text('0'), schema='%(schema)s') - op.create_foreign_key(None, order, user, ['user_id'], ['id'], \ + op.create_foreign_key(None, 'order', 'user', ['user_id'], ['id'], \ source_schema='%(schema)s', referent_schema='%(schema)s') op.alter_column('user', 'a1', existing_type=sa.TEXT(), -- cgit v1.2.1