def test_migration(self): """Teste la migration (partielle/totale) du modèle.""" # Recherche des scripts de migration dans le dossier des tests. module = u'vigilo.models.test.testdata' scripts = get_migration_scripts(module) expected_scripts = { 1: '001_Initial_version', 2: '002_Dummy', 3: '003_Dummy', } self.assertEquals(scripts, expected_scripts) # On simule l'installation d'un nouveau modèle. DBSession.add(tables.Version( name=module, version=1, )) DBSession.flush() # On vérifie qu'une migration jusqu'à un point fixe fonctionne. migrate_model(DBSession.bind, module, scripts, 2) version = DBSession.query(tables.Version).filter( tables.Version.name == module).one() self.assertEquals(version.version, 2) # On annule la migration et on teste cette fois une migration # jusqu'à la dernière version disponible. version.version = 1 DBSession.flush() migrate_model(DBSession.bind, module, scripts) version = DBSession.query(tables.Version).filter( tables.Version.name == module).one() self.assertEquals(version.version, 3)
def main(migration_no): """ Affiche toutes les migrations depuis la version L{migration_no} (exclue) jusqu'à la version actuelle sur la sortie standard. @param migration_no: Numéro de la migration de départ. @type migration_no: C{int} """ module = 'vigilo.models' scripts = get_migration_scripts(module) def remove_old_migrations(version): return version > migration_no versions = filter(remove_old_migrations, scripts.keys()) sorted(versions) for (i, ver) in enumerate(versions): if i > 0: print "-" * 30 ep = pkg_resources.EntryPoint.parse( 'upgrade = %s.migration.%s' % ( module, scripts[ver], )).load(require=False) print scripts[ver] + '.py' print ep.__doc__
def test_model_creation(self): """Teste la création du modèle.""" # On vérifie que lorsque le modèle de Vigilo est créé, # il l'est avec la toute dernière version disponible. populate_db(DBSession.bind) installed_version = DBSession.query(tables.Version).filter( tables.Version.name == u'vigilo.models').one() scripts = get_migration_scripts('vigilo.models') latest_version = max(scripts.keys()) self.assertEquals(installed_version.version, latest_version)