From 85f9619b03e218d024b65e96a22293f356455521 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Tue, 8 Jun 2010 19:25:15 -0400 Subject: [PATCH] - Fixed bug in Enum type which blew away native_enum flag when used with TypeDecorators or other adaption scenarios. --- CHANGES | 7 +++++++ lib/sqlalchemy/types.py | 1 + test/sql/test_types.py | 14 +++++++++++++- 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/CHANGES b/CHANGES index 2648510b70..bc6e0d57a2 100644 --- a/CHANGES +++ b/CHANGES @@ -3,6 +3,13 @@ ======= CHANGES ======= +0.6.2 +===== +- sql + - Fixed bug in Enum type which blew away native_enum + flag when used with TypeDecorators or other adaption + scenarios. + 0.6.1 ===== - orm diff --git a/lib/sqlalchemy/types.py b/lib/sqlalchemy/types.py index 9a9f2d1cdf..356ec2ecb7 100644 --- a/lib/sqlalchemy/types.py +++ b/lib/sqlalchemy/types.py @@ -1424,6 +1424,7 @@ class Enum(String, SchemaType): schema=self.schema, metadata=self.metadata, convert_unicode=self.convert_unicode, + native_enum=self.native_enum, *self.enums ) else: diff --git a/test/sql/test_types.py b/test/sql/test_types.py index 4e02d3db8d..23e1ebec6a 100644 --- a/test/sql/test_types.py +++ b/test/sql/test_types.py @@ -562,7 +562,19 @@ class EnumTest(TestBase): (3, 'one'), ] ) - + + def test_adapt(self): + from sqlalchemy.dialects.postgresql import ENUM + e1 = Enum('one','two','three', native_enum=False) + eq_(e1.adapt(ENUM).native_enum, False) + e1 = Enum('one','two','three', native_enum=True) + eq_(e1.adapt(ENUM).native_enum, True) + e1 = Enum('one','two','three', name='foo', schema='bar') + eq_(e1.adapt(ENUM).name, 'foo') + eq_(e1.adapt(ENUM).schema, 'bar') + + + @testing.fails_on('mysql+mysqldb', "MySQL seems to issue a 'data truncated' warning.") def test_constraint(self): assert_raises(exc.DBAPIError, -- 2.47.3