provide mark_changed() and commit() as Storage methods

This commit is contained in:
Helmut Merz 2024-03-09 09:38:52 +01:00
parent e3bb5b2880
commit 9e67fe08e6
4 changed files with 11 additions and 6 deletions

View file

@ -53,6 +53,12 @@ class Storage(object):
self.metadata = MetaData(schema=schema)
self.containers = {}
def commit(self):
self.db.commit(self.session)
def mark_changed(self):
self.db.mark_changed(self.session)
def create(self, cls):
container = cls(self)
self.add(container)

View file

@ -113,7 +113,7 @@ class Container(object):
values = self.setupValues(track, withTrackId)
stmt = t.insert().values(**values).returning(t.c.trackid)
trackId = self.session.execute(stmt).first()[0]
self.db.mark_changed(self.session)
self.storage.mark_changed()
return trackId
def update(self, track):
@ -124,7 +124,7 @@ class Container(object):
stmt = t.update().values(**values).where(t.c.trackid == track.trackId)
n = self.session.execute(stmt).rowcount
if n > 0:
self.db.mark_changed(self.session)
self.storage.mark_changed()
return n
def upsert(self, track):
@ -142,7 +142,7 @@ class Container(object):
stmt = self.table.delete().where(self.table.c.trackid == trackId)
n = self.session.execute(stmt).rowcount
if n > 0:
self.db.mark_changed(self.session)
self.storage.mark_changed()
return n
def makeTrack(self, r):

View file

@ -9,7 +9,6 @@ config.dbengine = 'postgresql+psycopg'
config.dbname = 'testdb'
config.dbuser = 'testuser'
config.dbpassword = 'secret'
config.dbschema = 'testing'
# PostgreSQL-specific settings
from scopes.storage.db.postgres import StorageFactory

View file

@ -50,7 +50,7 @@ def test_tracking(self, storage):
self.assertEqual(n, 1)
self.assertEqual(tracks.get(31), None)
storage.db.commit(storage.session)
storage.commit()
def test_folder(self, storage):
@ -66,5 +66,5 @@ def test_folder(self, storage):
self.assertEqual(ch1.parent, top.rid)
self.assertEqual(list(top.keys()), ['child1'])
storage.db.commit(storage.session)
storage.commit()