summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2014-10-17 09:25:04 +0000
committerGerrit Code Review <review@openstack.org>2014-10-17 09:25:04 +0000
commit848a00bce8879a6be4af0e4fad3ca1e5db4782af (patch)
tree46a7710d97ed2486e028a55263ae8dc3591a43ce
parentf95cd72dd45a914047cc4f401364625435f77499 (diff)
parent436dfdc737cdd1f0d330eac7b3c61b739bf75016 (diff)
downloadoslo-db-848a00bce8879a6be4af0e4fad3ca1e5db4782af.tar.gz
Merge "ModelsMigrationsSync:add correct server_default check for Enum"
-rw-r--r--oslo/db/sqlalchemy/test_migrations.py6
-rw-r--r--tests/sqlalchemy/test_migrations.py9
2 files changed, 14 insertions, 1 deletions
diff --git a/oslo/db/sqlalchemy/test_migrations.py b/oslo/db/sqlalchemy/test_migrations.py
index 307c90b..28b613f 100644
--- a/oslo/db/sqlalchemy/test_migrations.py
+++ b/oslo/db/sqlalchemy/test_migrations.py
@@ -475,7 +475,11 @@ class ModelsMigrationsSync(object):
@_compare_server_default.dispatch_for('postgresql')
def _compare_server_default(bind, meta_col, insp_def, meta_def):
- if isinstance(meta_col.type, sqlalchemy.String):
+ if isinstance(meta_col.type, sqlalchemy.Enum):
+ if meta_def is None or insp_def is None:
+ return meta_def != insp_def
+ return insp_def != "'%s'::%s" % (meta_def.arg, meta_col.type.name)
+ elif isinstance(meta_col.type, sqlalchemy.String):
if meta_def is None or insp_def is None:
return meta_def != insp_def
return insp_def != "'%s'::character varying" % meta_def.arg
diff --git a/tests/sqlalchemy/test_migrations.py b/tests/sqlalchemy/test_migrations.py
index df331d4..abb5f8a 100644
--- a/tests/sqlalchemy/test_migrations.py
+++ b/tests/sqlalchemy/test_migrations.py
@@ -191,6 +191,9 @@ class ModelsMigrationSyncMixin(test.BaseTestCase):
sa.Column('defaulttest', sa.Integer, server_default='5'),
sa.Column('defaulttest2', sa.String(8), server_default=''),
sa.Column('defaulttest3', sa.String(5), server_default="test"),
+ sa.Column('defaulttest4', sa.Enum('first', 'second',
+ name='testenum'),
+ server_default="first"),
sa.UniqueConstraint('spam', 'eggs', name='uniq_cons'),
)
@@ -214,6 +217,9 @@ class ModelsMigrationSyncMixin(test.BaseTestCase):
server_default='')
defaulttest3 = sa.Column('defaulttest3', sa.String(5),
server_default="test")
+ defaulttest4 = sa.Column('defaulttest4', sa.Enum('first', 'second',
+ name='testenum'),
+ server_default="first")
bar = sa.Column('bar', sa.Numeric(10, 5))
class ModelThatShouldNotBeCompared(BASE):
@@ -248,6 +254,9 @@ class ModelsMigrationSyncMixin(test.BaseTestCase):
sa.Column('defaulttest', sa.Integer, server_default='7'),
sa.Column('defaulttest2', sa.String(8), server_default=''),
sa.Column('defaulttest3', sa.String(5), server_default="fake"),
+ sa.Column('defaulttest4',
+ sa.Enum('first', 'second', name='testenum'),
+ server_default="first"),
sa.UniqueConstraint('spam', 'foo', name='uniq_cons'),
)