From 0737f45d4ff8fdb2e12972cc58c18345e4d6dde2 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Tue, 25 Sep 2018 10:38:40 -0400 Subject: Copy create_constraint flag for Enum Fixed bug where the :paramref:`.Enum.create_constraint` flag on the :class:`.Enum` datatype would not be propagated to copies of the type, which affects use cases such as declarative mixins and abstract bases. Fixes: #4341 Change-Id: I978be65f33a616fe4d5f5de03fb3eaab6f6a2272 --- test/sql/test_metadata.py | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) (limited to 'test/sql') diff --git a/test/sql/test_metadata.py b/test/sql/test_metadata.py index da133b21a..4976e2fb1 100644 --- a/test/sql/test_metadata.py +++ b/test/sql/test_metadata.py @@ -15,7 +15,7 @@ import sqlalchemy as tsa from sqlalchemy.testing import fixtures from sqlalchemy import testing from sqlalchemy.testing import ComparesTables, AssertsCompiledSQL -from sqlalchemy.testing import eq_, is_, mock, is_true +from sqlalchemy.testing import eq_, is_, mock, is_true, is_false from contextlib import contextmanager from sqlalchemy import util from sqlalchemy.testing import engines @@ -1879,6 +1879,18 @@ class SchemaTypeTest(fixtures.TestBase): m.dispatch.before_create(t1, testing.db) eq_(t1.c.y.type.evt_targets, (t1, )) + def test_enum_nonnative_column_copy_transfers_constraintpref(self): + m = MetaData() + + type_ = self.WrapEnum( + 'a', 'b', 'c', name='foo', + native_enum=False, create_constraint=False) + y = Column('y', type_) + y_copy = y.copy() + Table('x', m, y_copy) + + is_false(y_copy.type.create_constraint) + def test_boolean_column_copy_transfers_events(self): m = MetaData() @@ -1889,6 +1901,16 @@ class SchemaTypeTest(fixtures.TestBase): is_true(y_copy.type._create_events) + def test_boolean_nonnative_column_copy_transfers_constraintpref(self): + m = MetaData() + + type_ = self.WrapBoolean(create_constraint=False) + y = Column('y', type_) + y_copy = y.copy() + Table('x', m, y_copy) + + is_false(y_copy.type.create_constraint) + def test_metadata_dispatch_no_new_impl(self): m1 = MetaData() typ = self.MyType(metadata=m1) -- cgit v1.2.1