[Sqlalchemy-tickets] Issue #3260: CHECK constraints assocaited w/ Boolean, Enum get doubled on tome
Brought to you by:
zzzeek
|
From: Mike B. <iss...@bi...> - 2014-11-29 19:46:08
|
New issue 3260: CHECK constraints assocaited w/ Boolean, Enum get doubled on tometadata() https://bitbucket.org/zzzeek/sqlalchemy/issue/3260/check-constraints-assocaited-w-boolean Mike Bayer: ``` #!diff diff --git a/test/sql/test_metadata.py b/test/sql/test_metadata.py index 3f24fd0..74044e3 100644 --- a/test/sql/test_metadata.py +++ b/test/sql/test_metadata.py @@ -1473,6 +1473,46 @@ class SchemaTypeTest(fixtures.TestBase): m1.create_all(testing.db) + def test_boolean_constraint_type_doesnt_double(self): + m1 = MetaData() + + t1 = Table('x', m1, Column("flag", Boolean())) + eq_( + len([ + c for c in t1.constraints + if isinstance(c, CheckConstraint)]), + 1 + ) + m2 = MetaData() + t2 = t1.tometadata(m2) + + eq_( + len([ + c for c in t2.constraints + if isinstance(c, CheckConstraint)]), + 1 + ) + + def test_enum_constraint_type_doesnt_double(self): + m1 = MetaData() + + t1 = Table('x', m1, Column("flag", Enum('a', 'b', 'c'))) + eq_( + len([ + c for c in t1.constraints + if isinstance(c, CheckConstraint)]), + 1 + ) + m2 = MetaData() + t2 = t1.tometadata(m2) + + eq_( + len([ + c for c in t2.constraints + if isinstance(c, CheckConstraint)]), + 1 + ) + ``` |