Esempio n. 1
0
    def __init__(self, hub, name):
        self.name = name
        self.badges = {}
        self.hub = hub
        self.DBSession = None
        ENABLED = 'fedmsg.consumers.badges.{0}.enabled'.format(self.name)
        if not asbool(hub.config.get(ENABLED, False)):
            log.info('fedmsg.consumers.badges.{0} disabled'.format(self.name))
            return

        global_settings = hub.config.get("badges_global")

        database_uri = global_settings.get('database_uri', '')
        if database_uri == '':
            raise Exception('Badges consumer requires a database uri')
            return
        self.tahrir = TahrirDatabase(database_uri)
        self.DBSession = self.tahrir.session_maker
        issuer = global_settings.get('badge_issuer')
        self.issuer_id = self.tahrir.add_issuer(issuer.get('issuer_origin'),
                                                issuer.get('issuer_name'),
                                                issuer.get('issuer_org'),
                                                issuer.get('issuer_contact'))

        badges_settings = hub.config.get("{0}_badges".format(self.name))
        for badge in badges_settings:
            self.tahrir.add_badge(badge.get('badge_name'),
                                  badge.get('badge_image'),
                                  badge.get('badge_desc'),
                                  badge.get('badge_criteria'), self.issuer_id)
        return super(FedoraBadgesConsumer, self).__init__(hub)
Esempio n. 2
0
 def get_db(request):
     """ Database retrieval function to be added to the request for
         calling anywhere.
     """
     session = session_cls()
     return TahrirDatabase(session=session,
                           autocommit=False,
                           notification_callback=notifications.callback)
Esempio n. 3
0
    def setUp(self):
        check_output(['touch', 'testdb.db'])
        sqlalchemy_uri = "sqlite:///testdb.db"
        engine = create_engine(sqlalchemy_uri)
        DBSession.configure(bind=engine)
        DeclarativeBase.metadata.create_all(engine)

        self.api = TahrirDatabase(sqlalchemy_uri)
        self._create_test_data()
Esempio n. 4
0
from tahrir_api.dbapi import TahrirDatabase

db = TahrirDatabase('backend://*****:*****@localhost/badges')

badge_id = 'fossbox'
person_email = '*****@*****.**'
issued_on = None

db.add_person(person_email)
db.add_assertion(badge_id, person_email, issued_on)