fix handling of migrated UIDs, add test

This commit is contained in:
Helmut Merz 2024-02-19 11:02:00 +01:00
parent 086868d5b7
commit 31886012ce
2 changed files with 8 additions and 3 deletions

View file

@ -36,8 +36,9 @@ class TestStorage(common.TestCase):
def test_fav_001_setUp(self): def test_fav_001_setUp(self):
self.g.records = records = self.loopsRoot.getRecordManager() self.g.records = records = self.loopsRoot.getRecordManager()
favs = IFavorites(records['favorites']) favs = IFavorites(records['favorites'])
favs.add(self.g.resources['d001.txt'], self.g.johnC) trid = favs.add(self.g.resources['d001.txt'], self.g.johnC)
self.assertEqual(len(records['favorites']), 1) self.assertEqual(len(records['favorites']), 1)
self.g.favUid = util.getUidForObject(records['favorites'][trid])
def test_fav_002_migration(self): def test_fav_002_migration(self):
LoopsOptions(self.loopsRoot).set('scopes.storage.schema', ['testing']) LoopsOptions(self.loopsRoot).set('scopes.storage.schema', ['testing'])
@ -62,6 +63,10 @@ class TestStorage(common.TestCase):
self.assertEqual(len(result), 2) self.assertEqual(len(result), 2)
self.assertEqual(list(sorted(favs.list(self.g.johnC))), [u'21', u'23']) self.assertEqual(list(sorted(favs.list(self.g.johnC))), [u'21', u'23'])
def test_fav_021_olduid(self):
track = util.getItem(self.g.favUid)
self.assertEqual(track.taskId, '21')
def test_zzz_tearDown(self): def test_zzz_tearDown(self):
transaction.commit() transaction.commit()
self.cleanup() self.cleanup()

View file

@ -157,9 +157,9 @@ def getItem(uid, intIds=None, storage=None):
def getMigratedItem(uid, storage): def getMigratedItem(uid, storage):
t = self.getUidTable t = self.getUidTable
stmt = t.select().where(t.c.legacy == int(uid)) stmt = t.select().where(t.c.legacy == int(uid))
newId = storage.session.execute(stmt).scalar() newId = storage.session.execute(stmt).first()
if newId is not None: if newId is not None:
return storage.getItem(newUid) return storage.getItem('%s-%i' % newUid)
return None return None
def getObjectForUid(uid, intIds=None): def getObjectForUid(uid, intIds=None):