Ejemplo n.º 1
0
 def setup(self):
     super(TestDataBaseSystem, self).setup()
     radicale.config.set("storage", "database_url", "sqlite://")
     from radicale.storage import database
     database.Session = sessionmaker()
     database.Session.configure(bind=create_engine("sqlite://"))
     session = database.Session()
     for st in get_file_content("schema.sql").split(";"):
         session.execute(st)
     session.commit()
     self.application = radicale.Application()
Ejemplo n.º 2
0
def do_the_radicale_dance(tmpdir):
    # All of radicale is already global state, the cleanliness of the code and
    # all hope is already lost. This function runs before every test.

    # This wipes out the radicale modules, to reset all of its state.
    for module in list(sys.modules):
        if module.startswith('radicale'):
            del sys.modules[module]

    # radicale.config looks for this envvar. We have to delete it before it
    # tries to load a config file.
    os.environ['RADICALE_CONFIG'] = ''
    import radicale.config

    # Now we can set some basic configuration.
    # Radicale <=0.7 doesn't work with this, therefore we just catch the
    # exception and assume Radicale is open for everyone.
    try:
        radicale.config.set('rights', 'type', 'owner_only')
        radicale.config.set('auth', 'type', 'http')

        import radicale.auth.http

        def is_authenticated(user, password):
            return user == 'bob' and password == 'bob'

        radicale.auth.http.is_authenticated = is_authenticated
    except Exception as e:
        print(e)

    if storage_backend in ('filesystem', 'multifilesystem'):
        radicale.config.set('storage', 'type', storage_backend)
        radicale.config.set('storage', 'filesystem_folder', tmpdir)
    elif storage_backend == 'database':
        radicale.config.set('storage', 'type', 'database')
        radicale.config.set('storage', 'database_url', 'sqlite://')
        from radicale.storage import database

        s = database.Session()
        for line in RADICALE_SCHEMA:
            s.execute(line)
        s.commit()
    else:
        raise RuntimeError(storage_backend)