Example #1
0
    def _sql_backend(request,engine,**kwargs):

        meta = MetaData(engine)
        meta.reflect()
        meta.drop_all()
        #we enable foreign key checks for SQLITE
        if str(engine.url).startswith('sqlite://'):
            engine.connect().execute('pragma foreign_keys=ON')

        if not 'ondelete' in kwargs:
            kwargs['ondelete'] = 'CASCADE'
        backend = SqlBackend(engine = engine,**kwargs)
        backend.init_schema()
        backend.create_schema()

        def finalizer():
            backend.rollback()
            del backend.connection
            print("Dropping schema...")
            #we disable foreign key checks for SQLITE (as dropping tables with circular foreign keys won't work otherwise...)
            if str(engine.url).startswith('sqlite://'):
                engine.connect().execute('pragma foreign_keys=OFF')
            meta = MetaData(engine)
            meta.reflect()
            meta.drop_all()
            print("Done...")

        request.addfinalizer(finalizer)

        return backend
Example #2
0
def backend():
    engine = create_engine("sqlite:///:memory:", echo=True)
    backend = Backend(engine=engine, autodiscover_classes=False)
    backend.register(Actor)
    backend.init_schema()
    backend.create_schema()
    return backend
Example #3
0
def backend():
    engine = create_engine('sqlite:///:memory:', echo=True)
    backend = Backend(engine = engine,autodiscover_classes = False)
    backend.register(Actor)
    backend.init_schema()
    backend.create_schema()
    return backend
Example #4
0
    def _sql_backend(request,engine):

        meta = MetaData(engine)
        meta.reflect()
        meta.drop_all()

        backend = SqlBackend(engine = engine)
        backend.init_schema()
        backend.create_schema()

        def finalizer():
            del backend.connection
            print("Dropping schema...")
            meta = MetaData(engine)
            meta.reflect()
            meta.drop_all()
            print("Done...")

        request.addfinalizer(finalizer)

        return backend