Merge "Repair boolean CHECK constraint detection"

This commit is contained in:
Jenkins
2016-06-29 15:27:01 +00:00
committed by Gerrit Code Review
2 changed files with 32 additions and 17 deletions

View File

@@ -24,6 +24,7 @@ from six.moves.urllib import parse
import sqlalchemy
from sqlalchemy.dialects import mysql
from sqlalchemy import Boolean, Index, Integer, DateTime, String, SmallInteger
from sqlalchemy import CheckConstraint
from sqlalchemy import MetaData, Table, Column, ForeignKey
from sqlalchemy.engine import reflection
from sqlalchemy.engine import url as sa_url
@@ -546,6 +547,23 @@ class TestMigrationUtils(db_test_base.DbTestCase):
self.assertTrue(isinstance(table.c.foo.type, NullType))
self.assertTrue(isinstance(table.c.deleted.type, Boolean))
def test_detect_boolean_deleted_constraint_detection(self):
table_name = 'abc'
table = Table(table_name, self.meta,
Column('id', Integer, primary_key=True),
Column('deleted', Boolean))
ck = [
const for const in table.constraints if
isinstance(const, CheckConstraint)][0]
self.assertTrue(utils._is_deleted_column_constraint(ck))
self.assertFalse(
utils._is_deleted_column_constraint(
CheckConstraint("deleted > 5")
)
)
@db_test_base.backend_specific('sqlite')
def test_change_deleted_column_type_sqlite_drops_check_constraint(self):
table_name = 'abc'