Add ModelSMigrationSync classes

Add classes for testing correspondence between migration scripts
and metadata.
We need oslotest in test-requirements due to bug#1356425

Partial-Bug: #1365436
Change-Id: I0db68ea3557dd9d214ea50ff7c96de1a47a58d4b
This commit is contained in:
Oleksii Chuprykov 2014-10-06 19:53:24 +03:00
parent 9def368d07
commit e90f184143
1 changed files with 43 additions and 0 deletions

View File

@ -1370,3 +1370,46 @@ class TestSqliteMigrations(test_base.DbTestCase,
MigrationsMixin):
def test_walk_versions(self):
self._walk_versions(True, True)
class ModelsMigrationSyncMixin(object):
def get_metadata(self):
return models.BASE.metadata
def get_engine(self):
return self.engine
def db_sync(self, engine):
migration.db_sync(engine=engine)
def include_object(self, object_, name, type_, reflected, compare_to):
# We need to exclude tables that aren't in models.py and table that
# contains migrate version
# TODO(ochuprykov): We need to include this tables back after merge of
# models.py and models_metadef.py
# (except 'migrate_version')
if name in ['migrate_version', 'metadef_objects', 'metadef_namespaces',
'metadef_properties', 'metadef_resource_types',
'metadef_namespace_resource_types'] and type_ == 'table':
return False
return True
class ModelsMigrationsSyncMysql(ModelsMigrationSyncMixin,
test_migrations.ModelsMigrationsSync,
test_base.MySQLOpportunisticTestCase):
pass
class ModelsMigrationsSyncPostgres(ModelsMigrationSyncMixin,
test_migrations.ModelsMigrationsSync,
test_base.PostgreSQLOpportunisticTestCase):
pass
class ModelsMigrationsSyncSQLite(ModelsMigrationSyncMixin,
test_migrations.ModelsMigrationsSync,
test_base.DbTestCase):
pass