summaryrefslogtreecommitdiff
path: root/oslo_db/sqlalchemy/test_migrations.py
diff options
context:
space:
mode:
Diffstat (limited to 'oslo_db/sqlalchemy/test_migrations.py')
-rw-r--r--oslo_db/sqlalchemy/test_migrations.py18
1 files changed, 16 insertions, 2 deletions
diff --git a/oslo_db/sqlalchemy/test_migrations.py b/oslo_db/sqlalchemy/test_migrations.py
index 2f9372e..5204b85 100644
--- a/oslo_db/sqlalchemy/test_migrations.py
+++ b/oslo_db/sqlalchemy/test_migrations.py
@@ -555,6 +555,20 @@ class ModelsMigrationsSync(object):
return self.FKInfo((fk.parent.name,), fk.column.table.name,
(fk.column.name,))
+ def filter_metadata_diff(self, diff):
+ """Filter changes before assert in test_models_sync().
+
+ Allow subclasses to whitelist/blacklist changes. By default, no
+ filtering is performed, changes are returned as is.
+
+ :param diff: a list of differences (see `compare_metadata()` docs for
+ details on format)
+ :returns: a list of differences
+
+ """
+
+ return diff
+
def test_models_sync(self):
# recent versions of sqlalchemy and alembic are needed for running of
# this test, but we already have them in requirements
@@ -580,8 +594,8 @@ class ModelsMigrationsSync(object):
mc = alembic.migration.MigrationContext.configure(conn, opts=opts)
# compare schemas and fail with diff, if it's not empty
- diff = alembic.autogenerate.compare_metadata(mc,
- self.get_metadata())
+ diff = self.filter_metadata_diff(
+ alembic.autogenerate.compare_metadata(mc, self.get_metadata()))
if diff:
msg = pprint.pformat(diff, indent=2, width=20)
self.fail(