From 36231bcda74dbeb54d50d0395fafcb3abd779272 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Wed, 26 Feb 2025 09:09:51 -0500 Subject: [PATCH] dont stringify uq deferrable Fixed autogenerate rendering bug where the ``deferrable`` element of ``UniqueConstraint``, a bool, were being stringified rather than repr'ed when generating Python code. Fixes: #1613 Change-Id: I24bf7f3542566994559144c08cde2766d9ff4fe1 --- alembic/autogenerate/render.py | 4 ++-- docs/build/unreleased/1613.rst | 7 +++++++ tests/test_autogen_render.py | 4 ++-- 3 files changed, 11 insertions(+), 4 deletions(-) create mode 100644 docs/build/unreleased/1613.rst diff --git a/alembic/autogenerate/render.py b/alembic/autogenerate/render.py index b1e85f4b..50c51fa9 100644 --- a/alembic/autogenerate/render.py +++ b/alembic/autogenerate/render.py @@ -634,9 +634,9 @@ def _uq_constraint( has_batch = autogen_context._has_batch if constraint.deferrable: - opts.append(("deferrable", str(constraint.deferrable))) + opts.append(("deferrable", constraint.deferrable)) if constraint.initially: - opts.append(("initially", str(constraint.initially))) + opts.append(("initially", constraint.initially)) if not has_batch and alter and constraint.table.schema: opts.append(("schema", _ident(constraint.table.schema))) if not alter and constraint.name: diff --git a/docs/build/unreleased/1613.rst b/docs/build/unreleased/1613.rst new file mode 100644 index 00000000..57126bab --- /dev/null +++ b/docs/build/unreleased/1613.rst @@ -0,0 +1,7 @@ +.. change:: + :tags: bug, autogenerate + :tickets: 1613 + + Fixed autogenerate rendering bug where the ``deferrable`` element of + ``UniqueConstraint``, a bool, were being stringified rather than repr'ed + when generating Python code. diff --git a/tests/test_autogen_render.py b/tests/test_autogen_render.py index 06c0c84e..600e5783 100644 --- a/tests/test_autogen_render.py +++ b/tests/test_autogen_render.py @@ -2437,11 +2437,11 @@ class RenderNamingConventionTest(TestBase): t = Table("t", self.metadata, Column("c", Integer)) eq_ignore_whitespace( autogenerate.render._render_unique_constraint( - UniqueConstraint(t.c.c, deferrable="XYZ"), + UniqueConstraint(t.c.c, deferrable=True), self.autogen_context, None, ), - "sa.UniqueConstraint('c', deferrable='XYZ', " + "sa.UniqueConstraint('c', deferrable=True, " "name=op.f('uq_ct_t_c'))", ) -- 2.47.3