From a926dea6b78c91b627f0f0b86cdc6a9279872e99 Mon Sep 17 00:00:00 2001 From: petit87 Date: Sat, 26 Feb 2022 16:46:32 -0500 Subject: Fix repr for MySQL SET, generic Enum Fixed issues in :class:`_mysql.SET` datatype as well as :class:`.Enum` where the ``__repr__()`` method would not render all optional parameters in the string output, impacting the use of these types in Alembic autogenerate. Pull request for MySQL courtesy Yuki Nishimine. Fixes: #7720 Fixes: #7789 Closes: #7772 Pull-request: https://github.com/sqlalchemy/sqlalchemy/pull/7772 Pull-request-sha: d58845479f497f6b2e12d7df2e9eb2d6ac22109b Co-authored-by: Mike Bayer Change-Id: Idcec23eab4258511d9f32f4e3d78e511ea6021f1 --- test/dialect/mysql/test_types.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'test/dialect') diff --git a/test/dialect/mysql/test_types.py b/test/dialect/mysql/test_types.py index 3d26e1d07..de93a97a4 100644 --- a/test/dialect/mysql/test_types.py +++ b/test/dialect/mysql/test_types.py @@ -1310,6 +1310,24 @@ class EnumSetTest( [("", ""), ("", ""), ("two", "two"), (None, None)], ) + @testing.combinations( + ( + [""], + {"retrieve_as_bitwise": True}, + "SET('', retrieve_as_bitwise=True)", + ), + (["a"], {}, "SET('a')"), + (["a", "b", "c"], {}, "SET('a', 'b', 'c')"), + ( + ["a", "b", "c"], + {"collation": "utf8_bin"}, + "SET('a', 'b', 'c', collation='utf8_bin')", + ), + argnames="value,kw,expected", + ) + def test_set_repr(self, value, kw, expected): + eq_(repr(mysql.SET(*value, **kw)), expected) + def colspec(c): return testing.db.dialect.ddl_compiler( -- cgit v1.2.1