summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authortangkikodo <allmonday@126.com>2023-05-11 16:43:05 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2023-05-12 12:14:33 -0400
commit647190e82d4e7b9d7fe24a891af6556ed9d651b8 (patch)
tree06c89d927879ecf5420d0268fe5c062a58966bbf /tests
parent92e54a0e1c96cecd99397cb1aee9c3bb28f780c6 (diff)
downloadalembic-647190e82d4e7b9d7fe24a891af6556ed9d651b8.tar.gz
add user_module_prefix param for render_python_code
Fixed issue where :func:`.autogenerate.render_python_code` function did not provide a default value for the ``user_module_prefix`` variable, leading to ``NoneType`` errors when autogenerate structures included user-defined types. Added new parameter :paramref:`.autogenerate.render_python_code.user_module_prefix` to allow this to be set as well as to default to ``None``. Pull request courtesy tangkikodo. Fixes #1235 Closes: #1233 Pull-request: https://github.com/sqlalchemy/alembic/pull/1233 Pull-request-sha: 6fa3bc1ce4f2130bf7a28282a84e3bb9a3223304 Change-Id: Ic21eec87f373a9518513a6a308f16e5d2b5ebf81
Diffstat (limited to 'tests')
-rw-r--r--tests/test_autogen_render.py28
1 files changed, 28 insertions, 0 deletions
diff --git a/tests/test_autogen_render.py b/tests/test_autogen_render.py
index 14a0001..c4f474e 100644
--- a/tests/test_autogen_render.py
+++ b/tests/test_autogen_render.py
@@ -1636,6 +1636,34 @@ class AutogenRenderTest(TestBase):
"sa.ARRAY(sa.DateTime(timezone=True))",
)
+ @config.combinations(None, "default", "my_module.")
+ def test_render_create_table_with_user_module_type(self, mod):
+ class MyType(UserDefinedType):
+ def get_col_spec(self):
+ return "MYTYPE"
+
+ type_ = MyType()
+ uo = ops.UpgradeOps(
+ ops=[ops.CreateTableOp("sometable", [Column("x", type_)])]
+ )
+ if mod != "default":
+ kw = {"user_module_prefix": mod}
+ else:
+ kw = {}
+ if mod and mod != "default":
+ prefix = mod
+ else:
+ prefix = f"{__name__}."
+
+ eq_(
+ autogenerate.render_python_code(uo, **kw),
+ "# ### commands auto generated by Alembic - please adjust! ###\n"
+ " op.create_table('sometable',\n"
+ f" sa.Column('x', {prefix}MyType(), nullable=True)\n"
+ " )\n"
+ " # ### end Alembic commands ###",
+ )
+
def test_render_array_no_context(self):
uo = ops.UpgradeOps(
ops=[