示例#1
0
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)
示例#2
0
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)
示例#3
0
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')
示例#4
0
    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')
示例#5
0
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)
示例#6
0
def createsite(sitename, admin_password):
    """Creates a new site. Takes 2 arguments sitename and admin_password."""
    web.load()
    infobase.Infobase().create_site(sitename, admin_password)