provide mark_changed() and commit() as Storage methods
This commit is contained in:
parent
e3bb5b2880
commit
9e67fe08e6
4 changed files with 11 additions and 6 deletions
|
@ -53,6 +53,12 @@ class Storage(object):
|
||||||
self.metadata = MetaData(schema=schema)
|
self.metadata = MetaData(schema=schema)
|
||||||
self.containers = {}
|
self.containers = {}
|
||||||
|
|
||||||
|
def commit(self):
|
||||||
|
self.db.commit(self.session)
|
||||||
|
|
||||||
|
def mark_changed(self):
|
||||||
|
self.db.mark_changed(self.session)
|
||||||
|
|
||||||
def create(self, cls):
|
def create(self, cls):
|
||||||
container = cls(self)
|
container = cls(self)
|
||||||
self.add(container)
|
self.add(container)
|
||||||
|
|
|
@ -113,7 +113,7 @@ class Container(object):
|
||||||
values = self.setupValues(track, withTrackId)
|
values = self.setupValues(track, withTrackId)
|
||||||
stmt = t.insert().values(**values).returning(t.c.trackid)
|
stmt = t.insert().values(**values).returning(t.c.trackid)
|
||||||
trackId = self.session.execute(stmt).first()[0]
|
trackId = self.session.execute(stmt).first()[0]
|
||||||
self.db.mark_changed(self.session)
|
self.storage.mark_changed()
|
||||||
return trackId
|
return trackId
|
||||||
|
|
||||||
def update(self, track):
|
def update(self, track):
|
||||||
|
@ -124,7 +124,7 @@ class Container(object):
|
||||||
stmt = t.update().values(**values).where(t.c.trackid == track.trackId)
|
stmt = t.update().values(**values).where(t.c.trackid == track.trackId)
|
||||||
n = self.session.execute(stmt).rowcount
|
n = self.session.execute(stmt).rowcount
|
||||||
if n > 0:
|
if n > 0:
|
||||||
self.db.mark_changed(self.session)
|
self.storage.mark_changed()
|
||||||
return n
|
return n
|
||||||
|
|
||||||
def upsert(self, track):
|
def upsert(self, track):
|
||||||
|
@ -142,7 +142,7 @@ class Container(object):
|
||||||
stmt = self.table.delete().where(self.table.c.trackid == trackId)
|
stmt = self.table.delete().where(self.table.c.trackid == trackId)
|
||||||
n = self.session.execute(stmt).rowcount
|
n = self.session.execute(stmt).rowcount
|
||||||
if n > 0:
|
if n > 0:
|
||||||
self.db.mark_changed(self.session)
|
self.storage.mark_changed()
|
||||||
return n
|
return n
|
||||||
|
|
||||||
def makeTrack(self, r):
|
def makeTrack(self, r):
|
||||||
|
|
|
@ -9,7 +9,6 @@ config.dbengine = 'postgresql+psycopg'
|
||||||
config.dbname = 'testdb'
|
config.dbname = 'testdb'
|
||||||
config.dbuser = 'testuser'
|
config.dbuser = 'testuser'
|
||||||
config.dbpassword = 'secret'
|
config.dbpassword = 'secret'
|
||||||
config.dbschema = 'testing'
|
|
||||||
|
|
||||||
# PostgreSQL-specific settings
|
# PostgreSQL-specific settings
|
||||||
from scopes.storage.db.postgres import StorageFactory
|
from scopes.storage.db.postgres import StorageFactory
|
||||||
|
|
|
@ -50,7 +50,7 @@ def test_tracking(self, storage):
|
||||||
self.assertEqual(n, 1)
|
self.assertEqual(n, 1)
|
||||||
self.assertEqual(tracks.get(31), None)
|
self.assertEqual(tracks.get(31), None)
|
||||||
|
|
||||||
storage.db.commit(storage.session)
|
storage.commit()
|
||||||
|
|
||||||
|
|
||||||
def test_folder(self, storage):
|
def test_folder(self, storage):
|
||||||
|
@ -66,5 +66,5 @@ def test_folder(self, storage):
|
||||||
self.assertEqual(ch1.parent, top.rid)
|
self.assertEqual(ch1.parent, top.rid)
|
||||||
self.assertEqual(list(top.keys()), ['child1'])
|
self.assertEqual(list(top.keys()), ['child1'])
|
||||||
|
|
||||||
storage.db.commit(storage.session)
|
storage.commit()
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue