def get_site(sitename): global _infobase if not _infobase: schema = dbstore.default_schema or dbstore.Schema() store = dbstore.DBStore(schema) _infobase = infobase.Infobase(store, config.secret_key) return _infobase.get(sitename)
def get_infobase(rc): from infogami.infobase import infobase, dbstore import web web.config.db_parameters = infogami.config.db_parameters web.config.db_printing = False schema = dbstore.Schema() schema.add_table_group('type', '/type/type') schema.add_table_group('type', '/type/property') schema.add_table_group('type', '/type/backreference') schema.add_table_group('user', '/type/user') schema.add_table_group('user', '/type/usergroup') schema.add_table_group('user', '/type/permission') schema.add_table_group('edition', '/type/edition') schema.add_table_group('author', '/type/author') schema.add_table_group('scan', '/type/scan_location') schema.add_table_group('scan', '/type/scan_record') schema.add_seq('/type/edition', '/b/OL%dM') schema.add_seq('/type/author', '/a/OL%dA') store = dbstore.DBStore(schema) secret_key = rc['secret_key'] return infobase.Infobase(store, secret_key)
def site(): #TODO: this does not clear data between tests. Make this work in scope=class user = os.getenv('USER') web.config.db_parameters = dict(host='postgres', dbn='postgres', db='infobase_test', user=user, pw='') store = dbstore.DBStore(dbstore.Schema()) store.db.printing = False ib = infobase.Infobase(store, 'secret') return ib.create('test')
def setUp(self): user = os.getenv('USER') web.config.db_parameters = dict(dbn='postgres', db='infobase_test', user=user, pw='') store = dbstore.DBStore(dbstore.Schema()) self.t = store.db.transaction() store.db.printing = False self.ib = infobase.Infobase(store, 'secret') self.site = self.ib.create('test')
def createsite(): import web from infogami.infobase import dbstore, infobase, config, server web.config.db_parameters = infogami.config.db_parameters web.config.db_printing = True web.ctx.ip = '127.0.0.1' server.app.request('/') schema = dbstore.Schema() store = dbstore.DBStore(schema) ib = infobase.Infobase(store, config.secret_key) ib.create(infogami.config.site)