From 960092b4a86a9f4e8fb5c671da50be0d640ec0e6 Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Sun, 10 Mar 2024 19:46:36 +0100 Subject: [PATCH] provide __getitem__() method for tracking storage, tolerating track ids in string format --- scopes/storage/tracking.py | 8 +++++++- tests/tlib.py | 3 ++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/scopes/storage/tracking.py b/scopes/storage/tracking.py index dd805f3..aa907c6 100644 --- a/scopes/storage/tracking.py +++ b/scopes/storage/tracking.py @@ -81,9 +81,15 @@ class Container(object): self.table = self.getTable() def get(self, trackId): - stmt = self.table.select().where(self.table.c.trackid == trackId) + stmt = self.table.select().where(self.table.c.trackid == int(trackId)) return self.makeTrack(self.session.execute(stmt).first()) + def __getitem__(self, trackId): + tr = self.get(trackId) + if tr is None: + raise KeyError(trackId) + return tr + def query(self, **crit): stmt = self.table.select().where( and_(*self.setupWhere(crit))).order_by(self.table.c.trackid) diff --git a/tests/tlib.py b/tests/tlib.py index a774356..dbb6d40 100644 --- a/tests/tlib.py +++ b/tests/tlib.py @@ -19,7 +19,8 @@ def test_tracking(self, storage): trid01 = tracks.save(tr01) self.assertTrue(trid01 > 0) - tr01a = tracks.get(trid01) + #tr01a = tracks.get(trid01) + tr01a = tracks['%07i' % trid01] self.assertEqual(tr01a.head, tr01.head) self.assertEqual(tr01a.trackId, trid01) self.assertEqual(tr01a.data.get('activity'), 'testing')