summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2015-06-26 14:59:36 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2015-06-26 14:59:36 -0400
commit5ec5b92188195eaafd625227d1144132156d6bb2 (patch)
tree9da0be1bcdd8a4ef31f7fbf911ab8c66f7251947
parent492e4b89d32823a9c156f11eebef23e70440374a (diff)
downloadalembic-5ec5b92188195eaafd625227d1144132156d6bb2.tar.gz
- get all autogen_render tests to pass
-rw-r--r--alembic/autogenerate/render.py10
-rw-r--r--alembic/operations/base.py36
-rw-r--r--alembic/operations/ops.py30
-rw-r--r--alembic/operations/toimpl.py20
-rw-r--r--tests/test_autogen_render.py201
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')))"