use now module-global engine and session factory

This commit is contained in:
Helmut Merz 2024-02-01 15:21:36 +01:00
parent 16a8bcf5c3
commit bece8863ef
5 changed files with 22 additions and 21 deletions

View file

@ -12,10 +12,9 @@ class Storage(common.Storage):
uidTable = None
def __init__(self, engine, schema=None):
super(Storage, self).__init__(engine, schema)
def __init__(self, schema=None):
super(Storage, self).__init__(schema)
self.uidTable = self.getUidTable(self.schema)
self.session = self.Session()
def storeUid(self, ouid, nuid):
ouid = int(ouid)

View file

@ -6,7 +6,8 @@ from datetime import datetime
import transaction
import config
from cco.storage.common import getEngine
import cco.storage.common
from cco.storage.common import getEngine, sessionFactory
from cco.storage import tracking
from loops.config.base import LoopsOptions
from loops.storage.compat.common import Storage
@ -24,10 +25,7 @@ def migrate(loopsRoot, recFolderName, factory=tracking.Container):
if schema is not None:
schema = schema[0]
#print('*** schema:', schema)
storage = Storage(getEngine(config.dbengine, config.dbname,
config.dbuser, config.dbpassword,
host=config.dbhost, port=config.dbport),
schema=schema)
storage = Storage(schema=schema)
container = storage.create(factory)
for id, inTrack in rf.items():
ts = datetime.fromtimestamp(inTrack.timeStamp)

View file

@ -4,22 +4,22 @@
"""
import config
config.dbname = 'ccotest'
config.dbuser = 'ccotest'
config.dbpassword = 'cco'
import unittest
from zope import component, interface
from zope.app.testing.setup import placefulSetUp, placefulTearDown
from cco.storage.common import getEngine
import cco.storage.common
from cco.storage.common import getEngine, sessionFactory
from loops.expert.testsetup import TestSite
from loops.organize.personal.setup import SetupManager
from loops.organize.tests import setupObjectsForTesting
from loops.storage.compat.common import Storage
from loops import util
config.dbname = 'ccotest'
config.dbuser = 'ccotest'
config.dbpassword = 'cco'
class Glob(object):
pass
@ -38,8 +38,7 @@ class TestCase(unittest.TestCase):
loopsId = util.getUidForObject(loopsRoot)
setupData = setupObjectsForTesting(site, g.concepts)
g.johnC = setupData.johnC
g.storage = Storage(getEngine('postgresql', 'ccotest', 'ccotest', 'cco'),
schema='testing')
g.storage = Storage(schema='testing')
@classmethod
def cleanup(cls):

View file

@ -7,6 +7,8 @@ import transaction
from zope import component
from zope.traversing.api import getName
from loops.storage.tests import common
import config
from loops.concept import Concept
from loops.config.base import LoopsOptions
@ -15,7 +17,6 @@ from loops.organize.personal.interfaces import IFavorites
from loops.organize.personal.storage.favorite import Favorites
from loops.storage.migration.tracking import migrate
from loops.setup import addAndConfigureObject
from loops.storage.tests import common
from loops import util

14
util.py
View file

@ -23,13 +23,20 @@ except ImportError:
markdown = None
import config
from cco.storage.common import Storage, getEngine
import cco.storage.common
from cco.storage.common import Storage, getEngine, sessionFactory
import cybertools
from cybertools.meta.interfaces import IOptions
from loops.browser.util import html_quote
_ = MessageFactory('loops')
engine = getEngine(config.dbengine, config.dbname,
config.dbuser, config.dbpassword,
host=config.dbhost, port=config.dbport)
cco.storage.common.engine = engine
cco.storage.common.Session = sessionFactory(engine)
renderingFactories = {
'text/plain': 'zope.source.plaintext',
@ -126,10 +133,7 @@ def records(context, name, factory):
opts = IOptions(root)
if name in (opts.cco.storage.records or []):
schema = (opts.cco.storage.schema or [None])[0]
storage = Storage(getEngine(config.dbengine, config.dbname,
config.dbuser, config.dbpassword,
host=config.dbhost, port=config.dbport),
schema=schema)
storage = Storage( schema=schema)
cont = storage.create(factory)
else:
cont = root.getRecordManager().get(name)