예제 #1
0
 def setUp(self):
     super(ModelMigrationTests, self).setUp()
     Base.metadata.drop_all()
     # drop the alembic_version table
     try:
         version_table.drop(self.engine)
     except OperationalError:  # pragma: no cover
         pass
     # create an alembic table fixture
     version_table.create(self.engine)
     with transaction.manager:
         alembic_version = Migration()
         alembic_version.version_num = 'revid'
     self.DBSession.add(alembic_version)
예제 #2
0
    def test_get_alembic_revision(self):
        """ Test the `get_alembic_revision` function with a revision."""
        import transaction
        from anuket.models.migration import Migration
        version_table.create(self.engine)
        with transaction.manager:
            alembic_version = Migration()
            alembic_version.version_num = u'revid'
            self.DBSession.add(alembic_version)
        self.DBSession.remove()

        from anuket.lib.alembic_utils import get_alembic_revision
        revision = get_alembic_revision(self.config_uri)
        self.assertEqual(revision[0], u'revid')
예제 #3
0
    def test_initialize_db_with_revision(self):
        """ Test than the `initialize_db` method fail if the database is
        already versioned.
        """
        import transaction
        from anuket.models.migration import Migration
        version_table.create(self.engine)
        with transaction.manager:
            alembic_version = Migration()
            alembic_version.version_num = u'revid'
            self.DBSession.add(alembic_version)
        self.DBSession.remove()

        command = self._makeOne()
        command.args.config_uri = self.config_uri
        result = command.initialize_db()
        self.assertEqual(result, 1)
        self.assertEqual(self.output.getvalue().rstrip("\n"),
                         "This database is versioned. "
                         "Use the upgrade script instead!")
예제 #4
0
    def test_initialize_db_with_revision(self):
        """ Test than the `initialize_db` method fail if the database is
        already versioned.
        """
        import transaction
        from anuket.models.migration import Migration
        version_table.create(self.engine)
        with transaction.manager:
            alembic_version = Migration()
            alembic_version.version_num = u'revid'
            self.DBSession.add(alembic_version)
        self.DBSession.remove()

        command = self._makeOne()
        command.args.config_uri = self.config_uri
        result = command.initialize_db()
        self.assertEqual(result, 1)
        self.assertEqual(
            self.output.getvalue().rstrip("\n"), "This database is versioned. "
            "Use the upgrade script instead!")