Ejemplo n.º 1
0
    def initialize_db(self):
        """ Initialize the database schema and insert default values.

        :return: 0 (OK) or 1 (abnormal termination error)
        """
        config_uri = self.args.config_uri
        settings = get_appsettings(config_uri)
        engine = engine_from_config(settings, 'sqlalchemy.')
        DBSession.configure(bind=engine)

        # check if there is already a versioned database
        revision = get_alembic_revision(config_uri)
        if revision:
            print("This database is versioned. "
                  "Use the upgrade script instead!")
            return 1

        # create the tables (except alembic_version)
        Base.metadata.create_all(engine)

        # add default user & group values
        with transaction.manager:
            admins_group = AuthGroup()
            admins_group.groupname = u'admins'
            admin_user = AuthUser()
            admin_user.username = u'admin'
            admin_user.password = u'admin'
            admin_user.group = admins_group
            try:
                DBSession.add(admins_group)
                DBSession.add(admin_user)
                DBSession.flush()
            except IntegrityError:
                DBSession.rollback()
                print("There is already a database. "
                      "Use the upgrade script instead!")
                return 1

        # stamp the database with the most recent revision
        # (and create alembic_version table)
        try:
            alembic_cfg = get_alembic_settings(config_uri)
            stamp(alembic_cfg, 'head')
        except (AttributeError, ImportError):  # pragma: no cover
            # alembic is missing or not configured
            pass

        print("Database initialization done.")
        return 0
Ejemplo n.º 2
0
    def initialize_db(self):
        """ Initialize the database schema and insert default values.

        :return: 0 (OK) or 1 (abnormal termination error)
        """
        config_uri = self.args.config_uri
        settings = get_appsettings(config_uri)
        engine = engine_from_config(settings, 'sqlalchemy.')
        DBSession.configure(bind=engine)

        # check if there is already a versioned database
        revision = get_alembic_revision(config_uri)
        if revision:
            print("This database is versioned. "
                  "Use the upgrade script instead!")
            return 1

        # create the tables (except alembic_version)
        Base.metadata.create_all(engine)

        # add default user & group values
        with transaction.manager:
            admins_group = AuthGroup()
            admins_group.groupname = u'admins'
            admin_user = AuthUser()
            admin_user.username = u'admin'
            admin_user.password = u'admin'
            admin_user.group = admins_group
            try:
                DBSession.add(admins_group)
                DBSession.add(admin_user)
                DBSession.flush()
            except IntegrityError:
                DBSession.rollback()
                print("There is already a database. "
                      "Use the upgrade script instead!")
                return 1

        # stamp the database with the most recent revision
        # (and create alembic_version table)
        try:
            alembic_cfg = get_alembic_settings(config_uri)
            stamp(alembic_cfg, 'head')
        except (AttributeError, ImportError):  # pragma: no cover
            # alembic is missing or not configured
            pass

        print("Database initialization done.")
        return 0
Ejemplo n.º 3
0
 def admin_user_fixture(self):
     """ Create an admin auth user test fixture in the database."""
     try:
         from anuket.models.auth import AuthUser
         group = self.admin_group_fixture()
         user = AuthUser()
         user.username = u'admin'
         user.password = u'admin'
         user.group = group
         self.DBSession.add(user)
         self.DBSession.flush()
         return user
     except:  # pragma: no cover
         self.DBSession.rollback()
         raise AssertionError
Ejemplo n.º 4
0
 def admin_user_fixture(self):
     """ Create an admin auth user test fixture in the database."""
     try:
         from anuket.models.auth import AuthUser
         group = self.admin_group_fixture()
         user = AuthUser()
         user.username = u'admin'
         user.password = u'admin'
         user.group = group
         self.DBSession.add(user)
         self.DBSession.flush()
         return user
     except:  # pragma: no cover
         self.DBSession.rollback()
         raise AssertionError
Ejemplo n.º 5
0
 def dummy_user_fixture(self):
     """ Create a dummy auth user test fixture in the database."""
     try:
         from anuket.models.auth import AuthUser
         group = self.dummy_group_fixture()
         user = AuthUser()
         user.username = u'username'
         user.first_name = u'firstname'
         user.last_name = u'lastname'
         user.email = u'*****@*****.**'
         user.password = u'password'
         user.group = group
         self.DBSession.add(user)
         self.DBSession.flush()
         return user
     except:  # pragma: no cover
         self.DBSession.rollback()
         raise AssertionError
Ejemplo n.º 6
0
 def dummy_user_fixture(self):
     """ Create a dummy auth user test fixture in the database."""
     try:
         from anuket.models.auth import AuthUser
         group = self.dummy_group_fixture()
         user = AuthUser()
         user.username = u'username'
         user.first_name = u'firstname'
         user.last_name = u'lastname'
         user.email = u'*****@*****.**'
         user.password = u'password'
         user.group = group
         self.DBSession.add(user)
         self.DBSession.flush()
         return user
     except:  # pragma: no cover
         self.DBSession.rollback()
         raise AssertionError