summaryrefslogtreecommitdiff
path: root/tests/test_autogen_render.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2015-10-16 12:29:32 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2015-10-16 12:29:32 -0400
commitcd0bdca35f9b48d37a1f93c5b036786b01ea0372 (patch)
tree4a25b53c9a4d82ce6a69bf5760b965830c8426c8 /tests/test_autogen_render.py
parent01101668f9d062a38525f1ad9437c06d85e3d33a (diff)
downloadalembic-cd0bdca35f9b48d37a1f93c5b036786b01ea0372.tar.gz
- Fixed an 0.8 regression whereby the "imports" dictionary member of
the autogen context was removed; this collection is documented in the "render custom type" documentation as a place to add new imports. The member is now known as :attr:`.AutogenContext.imports` and the documentation is repaired. fixes #332
Diffstat (limited to 'tests/test_autogen_render.py')
-rw-r--r--tests/test_autogen_render.py17
1 files changed, 16 insertions, 1 deletions
diff --git a/tests/test_autogen_render.py b/tests/test_autogen_render.py
index e7010b5..c113a23 100644
--- a/tests/test_autogen_render.py
+++ b/tests/test_autogen_render.py
@@ -992,14 +992,23 @@ unique=False, """
def test_render_custom(self):
+ class MySpecialType(Integer):
+ pass
+
def render(type_, obj, context):
if type_ == "foreign_key":
return None
if type_ == "column":
if obj.name == "y":
return None
+ elif obj.name == "q":
+ return False
else:
return "col(%s)" % obj.name
+ if type_ == "type" and isinstance(obj, MySpecialType):
+ context.imports.add("from mypackage import MySpecialType")
+ return "MySpecialType()"
+
return "render:%s" % type_
self.autogen_context.opts.update(
@@ -1010,6 +1019,7 @@ unique=False, """
t = Table('t', MetaData(),
Column('x', Integer),
Column('y', Integer),
+ Column('q', MySpecialType()),
PrimaryKeyConstraint('x'),
ForeignKeyConstraint(['x'], ['y'])
)
@@ -1019,8 +1029,13 @@ unique=False, """
result,
"sa.create_table('t',"
"col(x),"
+ "sa.Column('q', MySpecialType(), nullable=True),"
"render:primary_key)"
)
+ eq_(
+ self.autogen_context.imports,
+ set(['from mypackage import MySpecialType'])
+ )
def test_render_modify_type(self):
op_obj = ops.AlterColumnOp(
@@ -1350,7 +1365,7 @@ unique=False, """
autogenerate.render._repr_type(type_, self.autogen_context),
"mysql.VARCHAR(charset='utf8', national=True, length=20)"
)
- eq_(self.autogen_context._imports,
+ eq_(self.autogen_context.imports,
set(['from sqlalchemy.dialects import mysql'])
)