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)
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)
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()
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)