示例#1
0
    def setUp(cls):
        from pas.plugins.sqlalchemy.model import Base

        testing.setUp()
        # zcml.load_config('meta.zcml', Products.Five)
        # zcml.load_config('configure.zcml', pas.plugins.sqlalchemy)

        app = ZopeTestCase.app()

        # Create our sandbox
        app.manage_addFolder(SANDBOX_ID)
        sandbox = app[SANDBOX_ID]

        # Add a cache manager
        factory = sandbox.manage_addProduct['StandardCacheManagers']
        factory.manage_addRAMCacheManager(CACHE_MANAGER_ID)

        # Setup the DB connection and PAS instances
        factory = EngineFactory('sqlite:///:memory:')
        engine = factory()
        Base.metadata.bind = engine
        Base.metadata.create_all(engine)
        cls.pas = cls.setupPAS(sandbox)

        utility = GloballyScopedSession(bind=engine, twophase=TEST_TWOPHASE)

        component.provideUtility(utility,
                                 provides=IScopedSession,
                                 name="pas.plugins.sqlalchemy")

        transaction.commit()
        ZopeTestCase.close(app)
示例#2
0
def configureEngine(TEST_DSN='sqlite:///:memory:'):
    """Utility function for tests to set up an in-memory test database.

    Returns engine object.
    """
    engine_factory = EngineFactory(TEST_DSN)
    component.provideUtility(engine_factory, provides=IEngineFactory)

    scoped_session = GloballyScopedSession()
    component.provideUtility(scoped_session, provides=IScopedSession)
    
    return engine_factory()
示例#3
0
    def testSetUp(self):
        super(MemoryDBLayer, self).testSetUp()

        engine_factory = EngineFactory('sqlite:///:memory:')
        provideUtility(engine_factory,
                       provides=IEngineFactory,
                       name=u'opengever_db')

        scoped_session = GloballyScopedSession(engine=u'opengever_db')
        provideUtility(scoped_session,
                       provides=IScopedSession,
                       name=u'opengever')

        setup_sql_tables()
        self.session = create_session()
def setup_memory_database():
    """Sets up a fresh in-memory database and activates it globally.
    """
    engine_factory = EngineFactory('sqlite:///:memory:',
                                   connect_args={'check_same_thread': False},
                                   poolclass=StaticPool)
    provideUtility(engine_factory,
                   provides=IEngineFactory,
                   name=u'opengever_db')

    # keep_session is necessary so that the builders can commit the
    # transaction multiple times and we can still use the sql objects
    # without fetching fresh copies.
    # The session should be closed on test tear down.
    scoped_session = GloballyScopedSession(
        engine=u'opengever_db',
        extension=ZopeTransactionExtension(keep_session=True))
    provideUtility(scoped_session, provides=IScopedSession, name=u'opengever')
示例#5
0
# -*- coding: utf-8 -*-
# Copyright (c) 2007-2011 NovaReto GmbH
# [email protected]

import os
import grok

from z3c.saconfig import EngineFactory, GloballyScopedSession
from sqlalchemy import Table, MetaData
from zope.app.appsetup.product import getProductConfiguration

config = getProductConfiguration('database')
DSN = config['dsn']
SCHEMA = config.get('schema', 'EDUCUSADAT')
engine_factory = EngineFactory(DSN, echo=False)
scoped_session = GloballyScopedSession()

grok.global_utility(engine_factory, direct=True)
grok.global_utility(scoped_session, direct=True)

engine = engine_factory()
metadata = MetaData(bind=engine)
if os.environ.get('ADHOC_TEST') == "True":
    c1unf1aa = None
    c1prs1aa = None
    avika1aa = None
    zczve1aa = None
    zckto1aa = None
    z1vrs1aa = None
    z1vrs2aa = None
示例#6
0
class SPDOEngineFactory(EngineFactory):

    def configuration(self):
        urltool = getToolByName(getSite(), 'portal_url')
        portal = urltool.getPortalObject()
        try:
            saconnect = ISQLAlchemyConnectionStrings(portal)
            dsn = saconnect['spdo']
            logger(u"Utilizando configuração local: " + unicode(dsn, 'utf-8'))
        except (ComponentLookupError, KeyError), e:
            dsn = DEFAULT_DSN
            logger(u"Utilizando configuração padrão: " + unicode(dsn, 'utf-8'))
        return (dsn,),{}

SPDOEngineGlobalUtility = EngineFactory(DEFAULT_DSN)
provideUtility(SPDOEngineGlobalUtility, provides=IEngineFactory, name=u'spdo_engine')

## GloballyScopedSession - um banco de dados por instancia
#SPDOGloballyScopedSession = GloballyScopedSession(u'spdo_engine', extension=ZopeVersionedExtension())
#provideUtility(SPDOGloballyScopedSession, provides=IScopedSession, name=u'spdo_session')

def ScopeID():
    urltool = getToolByName(getSite(), 'portal_url')
    obj = urltool.getPortalObject()
    return '-'.join(obj.getPhysicalPath()[1:])

# SiteScopedSession - um banco de dados por site
class SPDOSiteScopedSession(SiteScopedSession):
    def siteScopeFunc(self):
        return ScopeID()
示例#7
0
  3 Metaphysics Philosophy
"""

import grokcore.component as grok
from z3c.saconfig import EngineFactory, GloballyScopedSession
from z3c.saconfig.interfaces import IEngineCreatedEvent

from sqlalchemy import Column, ForeignKey
from sqlalchemy.types import Integer, String
from sqlalchemy.orm import relation

from megrok import rdb

TEST_DSN = 'sqlite:///:memory:'

engine_factory = EngineFactory(TEST_DSN)
scoped_session = GloballyScopedSession()

grok.global_utility(engine_factory, direct=True)
grok.global_utility(scoped_session, direct=True)

metadata = rdb.MetaData()


@grok.subscribe(IEngineCreatedEvent)
def setUpDatabase(event):
    rdb.setupDatabase(metadata)


rdb.metadata(metadata)
示例#8
0
from xiru.alchemyform.history_meta import ZopeVersionedExtension


class AlchemyFormEngineFactory(EngineFactory):
    def configuration(self):
        urltool = getToolByName(getSite(), 'portal_url')
        portal = urltool.getPortalObject()
        try:
            saconnect = ISQLAlchemyConnectionStrings(portal)
            dsn = saconnect['alchemyform']
        except (ComponentLookupError, KeyError), e:
            dsn = DEFAULT_DSN
        return (dsn, ), {}


AlchemyFormEngineGlobalUtility = EngineFactory(DEFAULT_DSN)
provideUtility(AlchemyFormEngineGlobalUtility,
               provides=IEngineFactory,
               name=u'alchemyform_engine')


def ScopeID():
    urltool = getToolByName(getSite(), 'portal_url')
    obj = urltool.getPortalObject()
    return '-'.join(obj.getPhysicalPath()[1:])


# SiteScopedSession - um banco de dados por site
class AlchemyFormSiteScopedSession(SiteScopedSession):
    def siteScopeFunc(self):
        return ScopeID()
示例#9
0
from z3c.saconfig import EngineFactory

# Here you can get the parameters like username and password, database, etc.
# Will be processed on zope startup.

DEBUG = False

username = '******'
password = '******'
host = '127.0.0.1'
port = '3306'
database = 'plonesqldemo'
database2 = 'plonesqldemo'

DemoDBEngine1 = EngineFactory('mysql://%s:%s@%s:%s/%s' %
                              (username, password, host, port, database),
                              echo=DEBUG,
                              convert_unicode=True,
                              pool_recycle=3600)

DemoDBSession1 = GloballyScopedSession(engine='demo_engine_1')

# This one could be to a different database:
DemoDBEngine2 = EngineFactory('mysql://%s:%s@%s:%s/%s' %
                              (username, password, host, port, database2),
                              echo=DEBUG,
                              convert_unicode=True,
                              pool_recycle=3600)

DemoDBSession2 = GloballyScopedSession(engine='demo_engine_2')