diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2015-06-26 14:59:36 -0400 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2015-06-26 14:59:36 -0400 |
commit | 5ec5b92188195eaafd625227d1144132156d6bb2 (patch) | |
tree | 9da0be1bcdd8a4ef31f7fbf911ab8c66f7251947 | |
parent | 492e4b89d32823a9c156f11eebef23e70440374a (diff) | |
download | alembic-5ec5b92188195eaafd625227d1144132156d6bb2.tar.gz |
- get all autogen_render tests to pass
-rw-r--r-- | alembic/autogenerate/render.py | 10 | ||||
-rw-r--r-- | alembic/operations/base.py | 36 | ||||
-rw-r--r-- | alembic/operations/ops.py | 30 | ||||
-rw-r--r-- | alembic/operations/toimpl.py | 20 | ||||
-rw-r--r-- | tests/test_autogen_render.py | 201 |
5 files changed, 182 insertions, 115 deletions
diff --git a/alembic/autogenerate/render.py b/alembic/autogenerate/render.py index c51a348..85f4467 100644 --- a/alembic/autogenerate/render.py +++ b/alembic/autogenerate/render.py @@ -196,7 +196,7 @@ def _drop_index(autogen_context, op): @renderers.dispatch_for(ops.CreateUniqueConstraintOp) def _add_unique_constraint(autogen_context, op): - return _uq_constraint(op.to_constraint(), autogen_context, True) + return [_uq_constraint(op.to_constraint(), autogen_context, True)] @renderers.dispatch_for(ops.CreateForeignKeyOp) @@ -215,12 +215,14 @@ def _add_fk_constraint(autogen_context, op): 'onupdate', 'ondelete', 'initially', 'deferrable', 'use_alter' ): if k in op.kw: - args.append("%s=%r" % (k, op.kw[k])) + value = op.kw[k] + if value is not None: + args.append("%s=%r" % (k, value)) - return "%(prefix)screate_foreign_key(%(args)s)" % { + return ["%(prefix)screate_foreign_key(%(args)s)" % { 'prefix': _alembic_autogenerate_prefix(autogen_context), 'args': ", ".join(args) - } + }] @renderers.dispatch_for(ops.CreatePrimaryKeyOp) diff --git a/alembic/operations/base.py b/alembic/operations/base.py index c11afbd..b6fa7d4 100644 --- a/alembic/operations/base.py +++ b/alembic/operations/base.py @@ -1,6 +1,5 @@ from contextlib import contextmanager -from sqlalchemy.types import NULLTYPE from sqlalchemy import schema as sa_schema from .. import util @@ -327,19 +326,14 @@ class Operations(object): table_name, column_name, schema=schema, existing_type=existing_type, existing_server_default=existing_server_default, - existing_nullable=existing_nullable + existing_nullable=existing_nullable, + modify_name=new_column_name, + modify_type=type_, + modify_server_default=server_default, + modify_nullable=nullable, + **kw ) - alt.kw = kw - if new_column_name is not None: - alt.modify_name = new_column_name - if type_ is not None: - alt.modify_type = type_ - if server_default is not False: - alt.modify_server_default = server_default - if nullable is not None: - alt.modify_nullable = nullable - return self.invoke(alt) def invoke(self, operation): @@ -460,7 +454,7 @@ class Operations(object): for index in t.indexes: self.impl._exec(sa_schema.CreateIndex(index)) - def drop_column(self, table_name, column_name, **kw): + def drop_column(self, table_name, column_name, schema=None, **kw): """Issue a "drop column" instruction using the current migration context. @@ -504,11 +498,8 @@ class Operations(object): """ - self.impl.drop_column( - table_name, - self.schema_obj.column(column_name, NULLTYPE), - **kw - ) + op = ops.DropColumnOp(table_name, column_name, schema=schema) + return self.invoke(op) @util._with_legacy_names([('name', 'constraint_name')]) def create_primary_key( @@ -897,12 +888,11 @@ class Operations(object): See the documentation regarding an individual dialect at :ref:`dialect_toplevel` for detail on documented arguments. """ - - self.impl.create_index( - self.schema_obj.index( - index_name, table_name, columns, schema=schema, - unique=unique, quote=quote, **kw) + op = ops.CreateIndex( + index_name, table_name, columns, schema=schema, + unique=unique, quote=quote, **kw ) + return self.invoke(op) @util._with_legacy_names([('tablename', 'table_name')]) @util._with_legacy_names([('name', 'index_name')]) diff --git a/alembic/operations/ops.py b/alembic/operations/ops.py index f2e84f1..e8c527c 100644 --- a/alembic/operations/ops.py +++ b/alembic/operations/ops.py @@ -1,6 +1,7 @@ from .. import util from ..util import sqla_compat from . import schemaobj +from sqlalchemy.types import NULLTYPE to_impl = util.Dispatcher() @@ -91,8 +92,8 @@ class CreateUniqueConstraintOp(AddConstraintOp): return CreateUniqueConstraintOp( constraint.name, constraint_table.name, + [c.name for c in constraint.columns], schema=constraint_table.schema, - *constraint.columns, **kw ) @@ -190,8 +191,8 @@ class CreateIndexOp(MigrateOperation): **index.dialect_kwargs ) - def to_index(self): - schema_obj = schemaobj.SchemaObjects() + def to_index(self, migration_context=None): + schema_obj = schemaobj.SchemaObjects(migration_context) return schema_obj.index( self.index_name, self.table_name, self.columns, schema=self.schema, unique=self.unique, quote=self.quote, **self.kw) @@ -203,6 +204,14 @@ class DropIndexOp(MigrateOperation): self.table_name = table_name self.schema = schema + @classmethod + def from_index(cls, index): + return DropIndexOp( + index.name, + index.table.name, + schema=index.table.schema, + ) + class CreateTableOp(MigrateOperation): def __init__(self, table_name, columns, constraints, schema=None, **kw): @@ -233,6 +242,13 @@ class DropTableOp(MigrateOperation): def from_table(cls, table): return DropTableOp(table.name, schema=table.schema) + def to_table(self, migration_context): + schema_obj = schemaobj.SchemaObjects(migration_context) + return schema_obj.table( + self.table_name, + schema=self.schema, + **self.table_kw) + class AlterTableOp(MigrateOperation): @@ -281,6 +297,10 @@ class AddColumnOp(AlterTableOp): self.column = column @classmethod + def from_column(cls, col): + return AddColumnOp(col.table.name, col, schema=col.table.schema) + + @classmethod def from_column_and_tablename(cls, schema, tname, col): return AddColumnOp(tname, col, schema=schema) @@ -295,6 +315,10 @@ class DropColumnOp(AlterTableOp): def from_column_and_tablename(cls, schema, tname, col): return DropColumnOp(tname, col.name, schema=schema) + def to_column(self, migration_context=None): + schema_obj = schemaobj.SchemaObjects(migration_context) + return schema_obj.column(self.column_name, NULLTYPE) + class BulkInsertOp(MigrateOperation): def __init__(self, table, rows, multiinsert=True): diff --git a/alembic/operations/toimpl.py b/alembic/operations/toimpl.py index ed50f30..28d4feb 100644 --- a/alembic/operations/toimpl.py +++ b/alembic/operations/toimpl.py @@ -65,8 +65,20 @@ def alter_column(operations, operation): @ops.to_impl.dispatch_for(ops.DropTableOp) def drop_table(operations, operation): operations.impl.drop_table( - operations.schema_obj.table( - operation.name, - schema=operation.schema, - **operation.table_kw) + operation.to_table(operations.migration_context) ) + + +@ops.to_impl.dispatch_for(ops.DropColumnOp) +def drop_column(operations, operation): + column = operation.to_column(operations.migration_context) + operations.impl.drop_column( + operation.table_name, + column + ) + + +@ops.to_impl.dispatch_for(ops.CreateIndexOp) +def create_index(operations, operation): + idx = operation.to_index(operations.migration_context) + operations.impl.create_index(idx) diff --git a/tests/test_autogen_render.py b/tests/test_autogen_render.py index 5bc5788..15d7185 100644 --- a/tests/test_autogen_render.py +++ b/tests/test_autogen_render.py @@ -60,8 +60,9 @@ class AutogenRenderTest(TestBase): Column('code', String(255)), ) idx = Index('test_active_code_idx', t.c.active, t.c.code) + op_obj = ops.CreateIndexOp.from_index(idx) eq_ignore_whitespace( - autogenerate.render._add_index(idx, self.autogen_context), + autogenerate.render_op_text(self.autogen_context, op_obj), "op.create_index('test_active_code_idx', 'test', " "['active', 'code'], unique=False)" ) @@ -97,16 +98,18 @@ class AutogenRenderTest(TestBase): idx = Index('foo_idx', t.c.x, t.c.y, postgresql_where=(t.c.y == 'something')) + op_obj = ops.CreateIndexOp.from_index(idx) + if compat.sqla_08: eq_ignore_whitespace( - autogenerate.render._add_index(idx, autogen_context), + autogenerate.render_op_text(autogen_context, op_obj), """op.create_index('foo_idx', 't', \ ['x', 'y'], unique=False, """ """postgresql_where=sa.text(!U"t.y = 'something'"))""" ) else: eq_ignore_whitespace( - autogenerate.render._add_index(idx, autogen_context), + autogenerate.render_op_text(autogen_context, op_obj), """op.create_index('foo_idx', 't', ['x', 'y'], \ unique=False, """ """postgresql_where=sa.text(!U't.y = %(y_1)s'))""" @@ -121,8 +124,10 @@ unique=False, """ Column('code', String(255)) ) idx = Index('test_lower_code_idx', func.lower(t.c.code)) + op_obj = ops.CreateIndexOp.from_index(idx) + eq_ignore_whitespace( - autogenerate.render._add_index(idx, self.autogen_context), + autogenerate.render_op_text(self.autogen_context, op_obj), "op.create_index('test_lower_code_idx', 'test', " "[sa.text(!U'lower(test.code)')], unique=False)" ) @@ -136,8 +141,9 @@ unique=False, """ Column('code', String(255)) ) idx = Index('test_lower_code_idx', cast(t.c.code, String)) + op_obj = ops.CreateIndexOp.from_index(idx) eq_ignore_whitespace( - autogenerate.render._add_index(idx, self.autogen_context), + autogenerate.render_op_text(self.autogen_context, op_obj), "op.create_index('test_lower_code_idx', 'test', " "[sa.text(!U'CAST(test.code AS CHAR)')], unique=False)" ) @@ -151,8 +157,9 @@ unique=False, """ Column('code', String(255)) ) idx = Index('test_desc_code_idx', t.c.code.desc()) + op_obj = ops.CreateIndexOp.from_index(idx) eq_ignore_whitespace( - autogenerate.render._add_index(idx, self.autogen_context), + autogenerate.render_op_text(self.autogen_context, op_obj), "op.create_index('test_desc_code_idx', 'test', " "[sa.text(!U'test.code DESC')], unique=False)" ) @@ -168,8 +175,9 @@ unique=False, """ Column('code', String(255)), ) idx = Index('test_active_code_idx', t.c.active, t.c.code) + op_obj = ops.DropIndexOp.from_index(idx) eq_ignore_whitespace( - autogenerate.render._drop_index(idx, self.autogen_context), + autogenerate.render_op_text(self.autogen_context, op_obj), "op.drop_index('test_active_code_idx', table_name='test')" ) @@ -185,8 +193,9 @@ unique=False, """ schema='CamelSchema' ) idx = Index('test_active_code_idx', t.c.active, t.c.code) + op_obj = ops.DropIndexOp.from_index(idx) eq_ignore_whitespace( - autogenerate.render._drop_index(idx, self.autogen_context), + autogenerate.render_op_text(self.autogen_context, op_obj), "op.drop_index('test_active_code_idx', " + "table_name='test', schema='CamelSchema')" ) @@ -202,9 +211,9 @@ unique=False, """ Column('code', String(255)), ) uq = UniqueConstraint(t.c.code, name='uq_test_code') + op_obj = ops.AddConstraintOp.from_constraint(uq) eq_ignore_whitespace( - autogenerate.render._add_unique_constraint( - uq, self.autogen_context), + autogenerate.render_op_text(self.autogen_context, op_obj), "op.create_unique_constraint('uq_test_code', 'test', ['code'])" ) @@ -220,9 +229,9 @@ unique=False, """ schema='CamelSchema' ) uq = UniqueConstraint(t.c.code, name='uq_test_code') + op_obj = ops.AddConstraintOp.from_constraint(uq) eq_ignore_whitespace( - autogenerate.render._add_unique_constraint( - uq, self.autogen_context), + autogenerate.render_op_text(self.autogen_context, op_obj), "op.create_unique_constraint('uq_test_code', 'test', " "['code'], schema='CamelSchema')" ) @@ -238,8 +247,9 @@ unique=False, """ Column('code', String(255)), ) uq = UniqueConstraint(t.c.code, name='uq_test_code') + op_obj = ops.DropConstraintOp.from_constraint(uq) eq_ignore_whitespace( - autogenerate.render._drop_constraint(uq, self.autogen_context), + autogenerate.render_op_text(self.autogen_context, op_obj), "op.drop_constraint('uq_test_code', 'test', type_='unique')" ) @@ -255,8 +265,9 @@ unique=False, """ schema='CamelSchema' ) uq = UniqueConstraint(t.c.code, name='uq_test_code') + op_obj = ops.DropConstraintOp.from_constraint(uq) eq_ignore_whitespace( - autogenerate.render._drop_constraint(uq, self.autogen_context), + autogenerate.render_op_text(self.autogen_context, op_obj), "op.drop_constraint('uq_test_code', 'test', " "schema='CamelSchema', type_='unique')" ) @@ -267,8 +278,9 @@ unique=False, """ 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) + op_obj = ops.AddConstraintOp.from_constraint(fk) eq_ignore_whitespace( - autogenerate.render._add_fk_constraint(fk, self.autogen_context), + autogenerate.render_op_text(self.autogen_context, op_obj), "op.create_foreign_key('fk_a_id', 'b', 'a', ['a_id'], ['id'])" ) @@ -284,11 +296,12 @@ unique=False, """ # SQLA 0.9 generates a u'' here for remote cols while 0.8 does not, # so just whack out "'u" here from the generated + op_obj = ops.AddConstraintOp.from_constraint(fk) eq_ignore_whitespace( re.sub( r"u'", "'", - autogenerate.render._add_fk_constraint( - fk, self.autogen_context)), + autogenerate.render_op_text(self.autogen_context, op_obj), + ), "op.create_foreign_key(None, 't', 't2', ['c'], ['c_rem'], " "onupdate='CASCADE')" ) @@ -297,11 +310,12 @@ unique=False, """ if not util.sqla_08: t1.append_constraint(fk) + op_obj = ops.AddConstraintOp.from_constraint(fk) eq_ignore_whitespace( re.sub( r"u'", "'", - autogenerate.render._add_fk_constraint( - fk, self.autogen_context)), + autogenerate.render_op_text(self.autogen_context, op_obj) + ), "op.create_foreign_key(None, 't', 't2', ['c'], ['c_rem'], " "ondelete='CASCADE')" ) @@ -309,11 +323,11 @@ unique=False, """ fk = ForeignKeyConstraint([t1.c.c], [t2.c.c_rem], deferrable=True) if not util.sqla_08: t1.append_constraint(fk) + op_obj = ops.AddConstraintOp.from_constraint(fk) eq_ignore_whitespace( re.sub( r"u'", "'", - autogenerate.render._add_fk_constraint( - fk, self.autogen_context), + autogenerate.render_op_text(self.autogen_context, op_obj) ), "op.create_foreign_key(None, 't', 't2', ['c'], ['c_rem'], " "deferrable=True)" @@ -322,11 +336,11 @@ unique=False, """ fk = ForeignKeyConstraint([t1.c.c], [t2.c.c_rem], initially="XYZ") if not util.sqla_08: t1.append_constraint(fk) + op_obj = ops.AddConstraintOp.from_constraint(fk) eq_ignore_whitespace( re.sub( r"u'", "'", - autogenerate.render._add_fk_constraint( - fk, self.autogen_context) + autogenerate.render_op_text(self.autogen_context, op_obj), ), "op.create_foreign_key(None, 't', 't2', ['c'], ['c_rem'], " "initially='XYZ')" @@ -337,11 +351,11 @@ unique=False, """ initially="XYZ", ondelete="CASCADE", deferrable=True) if not util.sqla_08: t1.append_constraint(fk) + op_obj = ops.AddConstraintOp.from_constraint(fk) eq_ignore_whitespace( re.sub( r"u'", "'", - autogenerate.render._add_fk_constraint( - fk, self.autogen_context) + autogenerate.render_op_text(self.autogen_context, op_obj) ), "op.create_foreign_key(None, 't', 't2', ['c'], ['c_rem'], " "ondelete='CASCADE', initially='XYZ', deferrable=True)" @@ -354,7 +368,8 @@ unique=False, """ 'b', m, Column('a_id', Integer, ForeignKey('a.aid'), key='baid')) - py_code = autogenerate.render._add_table(b, self.autogen_context) + op_obj = ops.CreateTableOp.from_table(b) + py_code = autogenerate.render_op_text(self.autogen_context, op_obj) eq_ignore_whitespace( py_code, @@ -376,7 +391,8 @@ unique=False, """ fk = ForeignKeyConstraint(['baid'], ['a.aid'], name='fk_a_id') b.append_constraint(fk) - py_code = autogenerate.render._add_table(b, self.autogen_context) + op_obj = ops.CreateTableOp.from_table(b) + py_code = autogenerate.render_op_text(self.autogen_context, op_obj) eq_ignore_whitespace( py_code, @@ -392,14 +408,16 @@ unique=False, """ "fk_a_id FOREIGN KEY(a_id) REFERENCES a (id))") context = op_fixture() - py_code = autogenerate.render._add_fk_constraint( - fk, self.autogen_context) + + op_obj = ops.AddConstraintOp.from_constraint(fk) eq_ignore_whitespace( - autogenerate.render._add_fk_constraint(fk, self.autogen_context), + autogenerate.render_op_text(self.autogen_context, op_obj), "op.create_foreign_key('fk_a_id', 'b', 'a', ['a_id'], ['id'])" ) + py_code = autogenerate.render_op_text(self.autogen_context, op_obj) + eval(py_code) context.assert_( "ALTER TABLE b ADD CONSTRAINT fk_a_id " @@ -417,8 +435,9 @@ unique=False, """ ["a_id"], ["CamelSchemaTwo.a.id"], name='fk_a_id') b.append_constraint(fk) + op_obj = ops.AddConstraintOp.from_constraint(fk) eq_ignore_whitespace( - autogenerate.render._add_fk_constraint(fk, self.autogen_context), + autogenerate.render_op_text(self.autogen_context, op_obj), "op.create_foreign_key('fk_a_id', 'b', 'a', ['a_id'], ['id']," " source_schema='CamelSchemaOne', " "referent_schema='CamelSchemaTwo')" @@ -430,8 +449,9 @@ unique=False, """ 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) + op_obj = ops.DropConstraintOp.from_constraint(fk) eq_ignore_whitespace( - autogenerate.render._drop_constraint(fk, self.autogen_context), + autogenerate.render_op_text(self.autogen_context, op_obj), "op.drop_constraint('fk_a_id', 'b', type_='foreignkey')" ) @@ -447,9 +467,10 @@ unique=False, """ ["a_id"], ["CamelSchemaTwo.a.id"], name='fk_a_id') b.append_constraint(fk) + op_obj = ops.DropConstraintOp.from_constraint(fk) eq_ignore_whitespace( - autogenerate.render._drop_constraint(fk, self.autogen_context), + autogenerate.render_op_text(self.autogen_context, op_obj), "op.drop_constraint('fk_a_id', 'b', schema='CamelSchemaOne', " "type_='foreignkey')" ) @@ -465,8 +486,10 @@ unique=False, """ UniqueConstraint("name", name="uq_name"), UniqueConstraint("timestamp"), ) + + op_obj = ops.CreateTableOp.from_table(t) eq_ignore_whitespace( - autogenerate.render._add_table(t, self.autogen_context), + autogenerate.render_op_text(self.autogen_context, op_obj), "op.create_table('test'," "sa.Column('id', sa.Integer(), nullable=False)," "sa.Column('name', sa.Unicode(length=255), nullable=True)," @@ -490,8 +513,9 @@ unique=False, """ Column('q', Integer, ForeignKey('address.id')), schema='foo' ) + op_obj = ops.CreateTableOp.from_table(t) eq_ignore_whitespace( - autogenerate.render._add_table(t, self.autogen_context), + autogenerate.render_op_text(self.autogen_context, op_obj), "op.create_table('test'," "sa.Column('id', sa.Integer(), nullable=False)," "sa.Column('q', sa.Integer(), nullable=True)," @@ -506,8 +530,9 @@ unique=False, """ t = Table(compat.ue('\u0411\u0435\u0437'), m, Column('id', Integer, primary_key=True), ) + op_obj = ops.CreateTableOp.from_table(t) eq_ignore_whitespace( - autogenerate.render._add_table(t, self.autogen_context), + autogenerate.render_op_text(self.autogen_context, op_obj), "op.create_table(%r," "sa.Column('id', sa.Integer(), nullable=False)," "sa.PrimaryKeyConstraint('id'))" % compat.ue('\u0411\u0435\u0437') @@ -519,8 +544,9 @@ unique=False, """ Column('id', Integer, primary_key=True), schema=compat.ue('\u0411\u0435\u0437') ) + op_obj = ops.CreateTableOp.from_table(t) eq_ignore_whitespace( - autogenerate.render._add_table(t, self.autogen_context), + autogenerate.render_op_text(self.autogen_context, op_obj), "op.create_table('test'," "sa.Column('id', sa.Integer(), nullable=False)," "sa.PrimaryKeyConstraint('id')," @@ -537,8 +563,9 @@ unique=False, """ Column('c', Integer), Column('d', Integer), ) + op_obj = ops.CreateTableOp.from_table(t) eq_ignore_whitespace( - autogenerate.render._add_table(t, self.autogen_context), + autogenerate.render_op_text(self.autogen_context, op_obj), "op.create_table('test'," "*[sa.Column('a', sa.Integer(), nullable=True)," "sa.Column('b', sa.Integer(), nullable=True)," @@ -552,9 +579,10 @@ unique=False, """ Column('b', Integer), Column('c', Integer), ) + op_obj = ops.CreateTableOp.from_table(t2) eq_ignore_whitespace( - autogenerate.render._add_table(t2, self.autogen_context), + autogenerate.render_op_text(self.autogen_context, op_obj), "op.create_table('test2'," "sa.Column('a', sa.Integer(), nullable=True)," "sa.Column('b', sa.Integer(), nullable=True)," @@ -567,8 +595,9 @@ unique=False, """ Column('id', Integer, primary_key=True), Column('q', Integer, ForeignKey('foo.address.id')), ) + op_obj = ops.CreateTableOp.from_table(t) eq_ignore_whitespace( - autogenerate.render._add_table(t, self.autogen_context), + autogenerate.render_op_text(self.autogen_context, op_obj), "op.create_table('test'," "sa.Column('id', sa.Integer(), nullable=False)," "sa.Column('q', sa.Integer(), nullable=True)," @@ -583,10 +612,11 @@ unique=False, """ Column('id', Integer, primary_key=True), Column('q', Integer, ForeignKey('address.id')), ) + op_obj = ops.CreateTableOp.from_table(t) eq_ignore_whitespace( re.sub( r"u'", "'", - autogenerate.render._add_table(t, self.autogen_context) + autogenerate.render_op_text(self.autogen_context, op_obj) ), "op.create_table('test'," "sa.Column('id', sa.Integer(), nullable=False)," @@ -603,8 +633,9 @@ unique=False, """ Column('id', Integer, primary_key=True), Column('q', Integer, ForeignKey('bar.address.id')), ) + op_obj = ops.CreateTableOp.from_table(t) eq_ignore_whitespace( - autogenerate.render._add_table(t, self.autogen_context), + autogenerate.render_op_text(self.autogen_context, op_obj), "op.create_table('test'," "sa.Column('id', sa.Integer(), nullable=False)," "sa.Column('q', sa.Integer(), nullable=True)," @@ -621,8 +652,9 @@ unique=False, """ Column('q', Integer, ForeignKey('bar.address.id')), sqlite_autoincrement=True, mysql_engine="InnoDB" ) + op_obj = ops.CreateTableOp.from_table(t) eq_ignore_whitespace( - autogenerate.render._add_table(t, self.autogen_context), + autogenerate.render_op_text(self.autogen_context, op_obj), "op.create_table('test'," "sa.Column('id', sa.Integer(), nullable=False)," "sa.Column('q', sa.Integer(), nullable=True)," @@ -632,17 +664,20 @@ unique=False, """ ) def test_render_drop_table(self): + op_obj = ops.DropTableOp.from_table( + Table("sometable", MetaData()) + ) eq_ignore_whitespace( - autogenerate.render._drop_table(Table("sometable", MetaData()), - self.autogen_context), + autogenerate.render_op_text(self.autogen_context, op_obj), "op.drop_table('sometable')" ) def test_render_drop_table_w_schema(self): + op_obj = ops.DropTableOp.from_table( + Table("sometable", MetaData(), schema='foo') + ) eq_ignore_whitespace( - autogenerate.render._drop_table( - Table("sometable", MetaData(), schema='foo'), - self.autogen_context), + autogenerate.render_op_text(self.autogen_context, op_obj), "op.drop_table('sometable', schema='foo')" ) @@ -650,8 +685,9 @@ unique=False, """ m = MetaData() t = Table('test', m, Column('x', Boolean())) + op_obj = ops.CreateTableOp.from_table(t) eq_ignore_whitespace( - autogenerate.render._add_table(t, self.autogen_context), + autogenerate.render_op_text(self.autogen_context, op_obj), "op.create_table('test'," "sa.Column('x', sa.Boolean(), nullable=True))" ) @@ -661,52 +697,53 @@ unique=False, """ t1 = Table('t1', m, Column('x', Integer)) t2 = Table('t2', m, Column('x', Integer, primary_key=True)) + op_obj = ops.CreateTableOp.from_table(t1) eq_ignore_whitespace( - autogenerate.render._add_table(t1, self.autogen_context), + autogenerate.render_op_text(self.autogen_context, op_obj), "op.create_table('t1'," "sa.Column('x', sa.Integer(), nullable=True))" ) + op_obj = ops.CreateTableOp.from_table(t2) eq_ignore_whitespace( - autogenerate.render._add_table(t2, self.autogen_context), + autogenerate.render_op_text(self.autogen_context, op_obj), "op.create_table('t2'," "sa.Column('x', sa.Integer(), nullable=False)," "sa.PrimaryKeyConstraint('x'))" ) def test_render_add_column(self): + op_obj = ops.AddColumnOp( + "foo", Column("x", Integer, server_default="5")) eq_ignore_whitespace( - autogenerate.render._add_column( - None, "foo", Column("x", Integer, server_default="5"), - self.autogen_context), + autogenerate.render_op_text(self.autogen_context, op_obj), "op.add_column('foo', sa.Column('x', sa.Integer(), " "server_default='5', nullable=True))" ) def test_render_add_column_w_schema(self): + op_obj = ops.AddColumnOp( + "bar", Column("x", Integer, server_default="5"), + schema="foo") eq_ignore_whitespace( - autogenerate.render._add_column( - "foo", "bar", Column("x", Integer, server_default="5"), - self.autogen_context), + autogenerate.render_op_text(self.autogen_context, op_obj), "op.add_column('bar', sa.Column('x', sa.Integer(), " "server_default='5', nullable=True), schema='foo')" ) def test_render_drop_column(self): + op_obj = ops.DropColumnOp.from_column_and_tablename( + None, "foo", Column("x", Integer, server_default="5")) eq_ignore_whitespace( - autogenerate.render._drop_column( - None, "foo", Column("x", Integer, server_default="5"), - self.autogen_context), - + autogenerate.render_op_text(self.autogen_context, op_obj), "op.drop_column('foo', 'x')" ) def test_render_drop_column_w_schema(self): + op_obj = ops.DropColumnOp.from_column_and_tablename( + "foo", "bar", Column("x", Integer, server_default="5")) eq_ignore_whitespace( - autogenerate.render._drop_column( - "foo", "bar", Column("x", Integer, server_default="5"), - self.autogen_context), - + autogenerate.render_op_text(self.autogen_context, op_obj), "op.drop_column('bar', 'x', schema='foo')" ) @@ -786,9 +823,8 @@ unique=False, """ PrimaryKeyConstraint('x'), ForeignKeyConstraint(['x'], ['y']) ) - result = autogenerate.render._add_table( - t, autogen_context - ) + op_obj = ops.CreateTableOp.from_table(t) + result = autogenerate.render_op_text(autogen_context, op_obj) eq_ignore_whitespace( result, "sa.create_table('t'," @@ -996,11 +1032,9 @@ unique=False, """ 't', m, Column('c', Integer), schema=compat.ue('\u0411\u0435\u0437') ) + op_obj = ops.AddConstraintOp.from_constraint(UniqueConstraint(t.c.c)) eq_ignore_whitespace( - autogenerate.render._add_unique_constraint( - UniqueConstraint(t.c.c), - self.autogen_context - ), + autogenerate.render_op_text(self.autogen_context, op_obj), "op.create_unique_constraint(None, 't', ['c'], " "schema=%r)" % compat.ue('\u0411\u0435\u0437') ) @@ -1283,10 +1317,9 @@ class RenderNamingConventionTest(TestBase): def test_schema_type_boolean(self): t = Table('t', self.metadata, Column('c', Boolean(name='xyz'))) + op_obj = ops.AddColumnOp.from_column(t.c.c) eq_ignore_whitespace( - autogenerate.render._add_column( - None, "t", t.c.c, - self.autogen_context), + autogenerate.render_op_text(self.autogen_context, op_obj), "op.add_column('t', " "sa.Column('c', sa.Boolean(name='xyz'), nullable=True))" ) @@ -1319,8 +1352,9 @@ class RenderNamingConventionTest(TestBase): Column('code', String(255)), ) idx = Index(None, t.c.active, t.c.code) + op_obj = ops.CreateIndexOp.from_index(idx) eq_ignore_whitespace( - autogenerate.render._add_index(idx, self.autogen_context), + autogenerate.render_op_text(self.autogen_context, op_obj), "op.create_index(op.f('ix_ct_test_active'), 'test', " "['active', 'code'], unique=False)" ) @@ -1332,8 +1366,9 @@ class RenderNamingConventionTest(TestBase): Column('code', String(255)), ) idx = Index(None, t.c.active, t.c.code) + op_obj = ops.DropIndexOp.from_index(idx) eq_ignore_whitespace( - autogenerate.render._drop_index(idx, self.autogen_context), + autogenerate.render_op_text(self.autogen_context, op_obj), "op.drop_index(op.f('ix_ct_test_active'), table_name='test')" ) @@ -1345,8 +1380,9 @@ class RenderNamingConventionTest(TestBase): schema='CamelSchema' ) idx = Index(None, t.c.active, t.c.code) + op_obj = ops.CreateIndexOp.from_index(idx) eq_ignore_whitespace( - autogenerate.render._add_index(idx, self.autogen_context), + autogenerate.render_op_text(self.autogen_context, op_obj), "op.create_index(op.f('ix_ct_CamelSchema_test_active'), 'test', " "['active', 'code'], unique=False, schema='CamelSchema')" ) @@ -1363,8 +1399,9 @@ class RenderNamingConventionTest(TestBase): def test_inline_pk_constraint(self): t = Table('t', self.metadata, Column('c', Integer, primary_key=True)) + op_obj = ops.CreateTableOp.from_table(t) eq_ignore_whitespace( - autogenerate.render._add_table(t, self.autogen_context), + autogenerate.render_op_text(self.autogen_context, op_obj), "op.create_table('t',sa.Column('c', sa.Integer(), nullable=False)," "sa.PrimaryKeyConstraint('c', name=op.f('pk_ct_t')))" ) @@ -1372,16 +1409,18 @@ class RenderNamingConventionTest(TestBase): def test_inline_ck_constraint(self): t = Table( 't', self.metadata, Column('c', Integer), CheckConstraint("c > 5")) + op_obj = ops.CreateTableOp.from_table(t) eq_ignore_whitespace( - autogenerate.render._add_table(t, self.autogen_context), + autogenerate.render_op_text(self.autogen_context, op_obj), "op.create_table('t',sa.Column('c', sa.Integer(), nullable=True)," "sa.CheckConstraint(!U'c > 5', name=op.f('ck_ct_t')))" ) def test_inline_fk(self): t = Table('t', self.metadata, Column('c', Integer, ForeignKey('q.id'))) + op_obj = ops.CreateTableOp.from_table(t) eq_ignore_whitespace( - autogenerate.render._add_table(t, self.autogen_context), + autogenerate.render_op_text(self.autogen_context, op_obj), "op.create_table('t',sa.Column('c', sa.Integer(), nullable=True)," "sa.ForeignKeyConstraint(['c'], ['q.id'], " "name=op.f('fk_ct_t_c_q')))" |