diff options
Diffstat (limited to 'oslo_db/sqlalchemy/test_migrations.py')
-rw-r--r-- | oslo_db/sqlalchemy/test_migrations.py | 18 |
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( |